读取Json数据的Python停止工作

2024-05-14 14:22:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是来自datahub的这段代码

实际上这是密码

from datapackage import Package

package = Package('http://datahub.io/core/population/datapackage.json')

# get list of resources:
resources = package.descriptor['resources']
resourceList = [resources[x]['name'] for x in range(0, len(resources))]

data = package.resources[0].read()
print(data)

这是返回的数据-

Country Name,Country Code,Year,Value
Arab World,ARB,1960,92490932
Arab World,ARB,1961,95044497
Arab World,ARB,1962,97682294
Arab World,ARB,1963,100411076
Arab World,ARB,1964,103239902

现在,这条线

data = package.resources[0].read()

停止工作。这是一个错误-非表格数据不支持iter/read方法

然后我将它们加载到SQL中的一个表中

for i in range(len(data)):
    Val1 = data[i][0]
    Val2= data[i][1]
    Val3= data[i][2]
    Val4= data[i][3]
    cursor.execute("insert into Population_Country (CountryName,CountryCode,Year,PopulationNumber) values (?,?,?,?)", Val1, Val2, Val3, Val4)
    cnxn.commit()

Tags: inpackageforworldreaddatalenrange
1条回答
网友
1楼 · 发布于 2024-05-14 14:22:19

不知道以前是怎么回事,但如果你看看里面有什么资源:

['validation_report', 'population_csv', 'population_csv_preview', 'population_json', 'population_zip', 'population']

所以0报告是'validation_report'下一个描述符:

{'bytes': 598, 'datahub': {'type': 'derived/report'}, 'description': 'Validation report for tabular data', 'dpp:streamedFrom': 'validation_report.json', 'encoding': 'utf-8', 'format': 'json', 'name': 'validation_report', 'path': 'https://pkgstore.datahub.io/core/population/validation_report/data/b6445474af133352488c54ed6c6fd6f2/validation_report.json', 'profile': 'data-resource'}

而且它不是表格,所以不能用read()读取。 据我所知,您需要"population_csv"资源,所以我会这样认为:

package.get_resource("population_csv").read()

相关问题 更多 >

    热门问题