使用python多字典解析json

时间:2017-03-05 19:24:11

标签: python json

我需要从下面的json文件中获取关键字的值。像:

output = ['abc,'cde']

Json文件结构如下:

d = [{
    "response": {"docs": [
        {"keywords": [{"value": "abc"}]},
        {"keywords": [{"value": "cde"}]}
    ]}
}]

我试过以下。我认为这是多余的,因为我只得到一个级别的["响应"] [" docs"]。

keywords = []
data = json.load(data_file)
for i in data:
    keywords.append(i["response"]["docs"][0]["keywords"])
keyword_Value = [g['value'] for d in keywords for g in d]

2 个答案:

答案 0 :(得分:0)

Python内置了JSON编码器/解码器。请参阅:https://docs.python.org/2/library/json.html

这样的东西
import json
with open ('path/to/your_data.json') as json_data:
    data = json.load(json_data)

答案 1 :(得分:0)

如果你不介意使用外部库,使用jmespath就可以轻松完成此任务:

import jmespath
keywords = jmespath.search('[].response.docs[].keywords[].value', data)

<强>代码:

data = [{
    "response": {"docs": [
        {"keywords": [{"value": "abc"}]},
        {"keywords": [{"value": "cde"}]}
    ]}
}]

import jmespath
keywords = jmespath.search('[].response.docs[].keywords[].value', data)

print(keywords)

<强>结果:

['abc', 'cde']