Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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列表中提取多个Json文件_Python_Json - Fatal编程技术网

Python-如何从Json列表中提取多个Json文件

Python-如何从Json列表中提取多个Json文件,python,json,Python,Json,有一个包含以下词典的json列表: [ { "native_data": { "PopOrGuess": null, "role": "D", "TSX": "Included" }, "id": "3dsdsa_a_12sss" }, { "nat

有一个包含以下词典的json列表:

[
  {
    "native_data": {
      "PopOrGuess": null,
      "role": "D",
      "TSX": "Included"
    },
    "id": "3dsdsa_a_12sss"
  },
  {
    "native_data": {
      "PopOrGuess": 123,
      "role": "A",
      "TSX": "NA"
    },
    "id": "12_123_saba"
  }
]
我需要提取这个列表并为列表中的每个元素创建新的json文件, 因此file_name将获得id值,而json内容是dict中的第一个元素, 第一个元素id的含义:12_123_saba 文件名:3dsdsa_a_12sss.json

{
    "native_data": {
      "PopOrGuess": null,
      "role": "D",
      "TSX": "Included"
    }
  }

我试过:

def ExtractJsonPrice( file ):
    jsonFile = open(file, "r") # Open the JSON file for reading
    try:
       json_data = json.load(jsonFile)
    except ValueError:
           print("error loading JSON")
           logging.error("Exception occurred", exc_info=True)
    
    for item in json_data:
        file_name = item['id']
        json_content = item['native_data'] 
从那里我得到了文件名, 但问题是,json_内容现在保存着“native_data”键的内容 但它实际上缺少关键的本地数据,
我想我可以把它附加为后处理,但我确信有更有效的方法。

是的,你得到了钥匙,你可以这样做

json_content = {'native_data': item['native_data']}

是的,你拿到钥匙了,你可以这样做

json_content = {'native_data': item['native_data']}
找到了一种方法:

    
    for item in json_data:
        json_content = {}
        file_name = item['id']
        json_content["native_data"]= item['native_data'] 
        file_name = list(item.values())[1]
        
        with open('ID_' + file_name + '.json' , 'w') as fp:  
             json.dump(json_content,fp)

找到了一种方法:

    
    for item in json_data:
        json_content = {}
        file_name = item['id']
        json_content["native_data"]= item['native_data'] 
        file_name = list(item.values())[1]
        
        with open('ID_' + file_name + '.json' , 'w') as fp:  
             json.dump(json_content,fp)