Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python多字典解析json_Python_Json - Fatal编程技术网

使用python多字典解析json

使用python多字典解析json,python,json,Python,Json,我需要从下面的json文件中获取关键字的值。比如: output = ['abc,'cde'] Json文件结构如下所示: d = [{ "response": {"docs": [ {"keywords": [{"value": "abc"}]}, {"keywords": [{"value": "cde"}]} ]} }] 我试过下面的方法。我相信这是多余的,因为我只得到一个级别的[“响应”][“文档”] Python内置了一个JSON编码

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

output = ['abc,'cde']
Json文件结构如下所示:

d = [{
    "response": {"docs": [
        {"keywords": [{"value": "abc"}]},
        {"keywords": [{"value": "cde"}]}
    ]}
}]
我试过下面的方法。我相信这是多余的,因为我只得到一个级别的[“响应”][“文档”]


Python内置了一个JSON编码器/解码器。见:

差不多

import json
with open ('path/to/your_data.json') as json_data:
    data = json.load(json_data)

如果您不介意使用外部库,则此任务非常容易使用,例如:

代码:

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

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

print(keywords)
['abc', 'cde']
结果:

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

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

print(keywords)
['abc', 'cde']

请告诉我们您尝试了什么。是多次使用“响应”键还是输入错误?以上数据不是有效的python指令。@leovp已编辑question@PJSantoro对不起,我已经有数据了。我已经阅读了json文件,只需要如上所述的特定值列表,您可以将其用作本机Python数据结构并循环键。