【发布时间】:2021-09-11 08:40:15
【问题描述】:
在阅读 json 请求时,我得到了
TypeError: string indices must be integers error.
下面是请求
"{'Name': 'XYZ', 'Details': [{'Name': 'hhh', 'Price': '5.79'},
{'Name': ' abc', 'Price': '2.79'},
{'Name': 'def', 'Price': '2.99'},
{'Name': ' ghi', 'Price': '1.29'},
{'Name': 'ijk', 'Price': '1.49'}]}"
我想从上述请求中获取 Details 键的值。
我尝试了以下方法,它们都不起作用
data = json.loads(req)
data = json.dumps(req)
ast.literal_eval(data).
【问题讨论】:
-
这不是有效的 JSON(单引号而不是双引号),但您的错误消息完全无关紧要。请发布您的整个代码。
-
您的示例不起作用。
req不是有效的 JSON 结构。你req变量应该是'''{"XName": "XYZ", "Details": [{"Name": "abc", "Price": "3.2"}, {"Name": "def", "Price": "4.5"}]}''' -
已编辑请求。请立即检查
-
JSON 不允许单引号。
'Name'必须是"Name"。 -
您如何获得
request?如果您从r = requests.get(url)获取它,请使用r.text获取json 字符串。r.json()获取dict。