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

2024-10-03 06:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个包含以下词典的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”键的内容 但它实际上缺少关键的“本地数据”, 我想我可以把它附加为后处理,但我相信有更有效的方法


Tags: idjson元素内容列表dataitemnull
2条回答

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

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)

相关问题 更多 >