Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 3.x 使用字典值解析json输出_Python 3.x - Fatal编程技术网

Python 3.x 使用字典值解析json输出

Python 3.x 使用字典值解析json输出,python-3.x,Python 3.x,您好,我的JSON文件如下所示: { 'hits' : 3, 'results' : [{ 'part' : { 'id' : '123', 'name' : 'to go', 'manu' :{ 'name' :'xyz' } } }] } 如何获得: hits:3 结果\u id:123 result

您好,我的JSON文件如下所示:

{
    'hits' : 3, 
    'results' : [{
        'part' : {
            'id' : '123', 
            'name' : 'to go', 
            'manu' :{ 
                'name' :'xyz'
            }
        }
    }]
}
如何获得:

  • hits:3
  • 结果\u id:123
  • results\u name:to go
  • manu_name:xyz
  • 正在为循环编写python键值对。。。没有得到请建议

    我的按键是
    点击
    结果

    试试这个

    dout = {}
    #din = json.load("file.json") #read from json
    din = {'hits' : 3, 'results' : [{'part' : {'id' : '123', 'name' : 'to go', 'manu' :{ 'name' :'xyz'}}}]}
    for part in din['results']:
        for p, data  in part.items():
             dout['hits'] = din['hits']
             dout['results_id'] = data['id']
             dout['results_name'] = data['name']
             dout['manu_name'] = data['manu']['name']
    
    print(dout)
    

    首先,按如下方式更新字符串,使其成为有效的JSON:

    {"hits" : 3, "results" : [{"part" : {"id" : "123", "name" : "to go", "manu" :{ "name" :"xyz"}}}]}
    
    假设这是文本文件的内容,请按以下步骤进行操作:

    import json
    
    data = {}
    
    with open("stackOverflow/brooklinite81.json") as json_file:
        data = json.load(json_file)
    
    data
    
    res = {'hits' :data['hits'], 
           'results_id': data['results'][0]['part']['id'], 
           'manu': data['results'][0]['part']['manu']['name'] 
           }
    
    res 
    
    这使得:

    {'hits': 3, 'results': [{'part': {'id': '123', 'name': 'to go', 'manu': {'name': 'xyz'}}}]}
    
    现在,您可以按如下方式创建词典:

    import json
    
    data = {}
    
    with open("stackOverflow/brooklinite81.json") as json_file:
        data = json.load(json_file)
    
    data
    
    res = {'hits' :data['hits'], 
           'results_id': data['results'][0]['part']['id'], 
           'manu': data['results'][0]['part']['manu']['name'] 
           }
    
    res 
    
    其呈现为:

    {'hits': 3, 'results_id': '123', 'manu': 'xyz'}
    

    到目前为止,您尝试了什么?对于键,输出中的值。items():打印(“键”,“值”),请更具描述性。什么是
    输出
    对于键,输出中的值。items():
    只是循环的开始…@brooklinite81请编辑您的问题,并以正确的代码格式提及您所需的输出。比如:
    hits:3
    等等。要使用Python的JSON库,JSON字符串必须是有效的JSON,这意味着对属性名和字符串值使用双引号。不接受单引号。在继续之前,请将文件中的所有单引号替换为双引号,否则将出现以下错误:
    jsondecoderror:应将属性名称括在双引号中