【发布时间】:2020-06-02 17:55:23
【问题描述】:
我有一个 json URL,我正在尝试用 Python 解析它,该 url 的输出如下所示:
"data": [
{
"config": {
"add": {
"body": [],
"headers": [],
"querystring": []
},
"append": {
"body": [],
"headers": [],
"querystring": []
},
"http_method": null,
"remove": {
"body": [],
"headers": [],
"querystring": []
},
"rename": {
"body": [],
"headers": [],
"querystring": []
},
"replace": {
"body": [],
"headers": [
"Host: jupyter.bbs-edsapp-p001.bbs.aphp.fr"
],
"querystring": [],
"uri": null
}
},
"consumer": null,
我的python脚本是:
import requests
import json
response = json.loads(requests.get("http://127.0.0.1:8001/services/6ca6c203-d3b6-46c7-94d6-cad435bbfd97/plugins").text)
for p in response['data']['config']['replace']:
print('back: ' + headers[0])
#print('name: ' + p['name'])
#print(p['name'])
我收到此错误:
for p in response['data']['config']['add']:
TypeError: list indices must be integers or slices, not str.
【问题讨论】:
-
您问题中的代码与错误消息中显示的不匹配。
-
首先,您必须修改您的问题以将代码与错误消息匹配。其次,如果您在 json 数据中看到方括号,则表示数组,因此您只能使用整数索引访问它,例如
response['data'][0]['config']... etc。