用python解析嵌套的json

时间:2014-08-03 11:13:11

标签: python json

提交请求后,我收到了以下json:

{"type": [
{"ID": "all", "count": 1, "references": [
    { "id": "Boston,MA,02118", "text": "Boston,MA,02118", "val": "Boston,MA,02118", "type": 1 ,"zip": "02118","city": "Boston","state": "MA","lt": "42.3369","lg": "-71.0637","s": ""}
] }
] } 

我在变量j中捕获了响应,

>>> j
'{"type": [\r\n\t{"ID": "all", "count": 1, "references": [\r\n\t\t{ "id": "Boston,MA,02118", "text": "Boston,MA,02118", "val": "Boston,MA,02118", "type": 1 ,"zip": "02118","city": "Boston","state": "MA","lt": "42.3369","lng": "-71.0637","s": ""}\r\n\t] }\r\n] }'

我正在尝试解析它:

>>> j['types']
TypeError: string indices must be integers, not str      

我做错了什么?

1 个答案:

答案 0 :(得分:5)

您已获得字典的JSON字符串表示形式。但是你试图将该字符串用作字典。那不会起作用;您需要先使用json模块解析它:

import json
obj = json.loads(j)
obj['types']

(有些库可以包含整个"发送请求,获取响应,将主体拉出响应,确保内容类型适合JSON,解析它,引发异常如果出现任何问题"对于你。但如果你没有使用它,你就不能跳过任何步骤。)