我试图编写一个脚本从API下载图像,我设置了一个循环,如下所示:
response = requests.get(url, params=query)
json_data = json.dumps(response.text)
pythonVal = json.loads(json.loads(json_data))
print(pythonVal)
打印(pythonVal)返回:
{
"metadata": {
"code": 200,
"message": "OK",
"version": "v2.0"
},
"data": {
"_links": {
"self": {
"href": "redactedLink"
}
},
"id": "123456789",
"_fixed": true
,
"type": "IMAGE",
"source": "social media",
"source_id": "1234567890_1234567890",
"original_source": "link",
"caption": "caption",
"video_url": null,
"share_url": "link",
"date_submitted": "2016-07-11T09:34:35+00:00",
"date_published": "2016-09-11T16:30:26+00:00",
我不断收到一个错误,上面写着:
UnicodeEncodeError: 'ascii' codec can't encode character '\xc4' in
position 527: ordinal not in range(128)
对于pythonVal变量,如果我只是将其设置为json.loads(json_data)
,它会打印出JSON响应,但是当我尝试执行pythonVal['data']
时,会出现另一个错误,如下所示:
TypeError: string indices must be integers
最终,我希望能够通过如下操作从中获取数据
pythonVal['data']['_embedded']['uploader']['username']
谢谢你的意见!你知道吗
将以下内容置于代码之上。其工作原理是将Python的本机ascii编码重写为UTF-8。你知道吗
第二个错误是因为您已经获取了字符串,并且需要整数索引来获取字符串的字符。你知道吗
为什么要做
json.loads()
两次?更改:收件人:
它应该有用。你知道吗
现在由于在执行
pythonVal['data']
时出现错误TypeError: string indices must be integers
,这意味着pythonVal
的值是list
类型,而不是dict
。相反,请执行以下操作:如果您想从其他人那里得到更好的帮助,请在问题中提及示例JSON内容:)
相关问题 更多 >
编程相关推荐