亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中解析沒有明確鍵名的嵌套json

在python中解析沒有明確鍵名的嵌套json

九州編程 2023-08-08 16:28:36
我有一個嵌套的 json ,如下所示。我正在嘗試從下面的 json 中獲取城市和標簽的值。   {      "5c7a3dd5-29e4-4f5b-9dc8-d2d451906cf1": {        "id": "1d14eba1-de9e-4e53-9e9e-619432fd815b",        "opinion_id": "3063e6ff-1483-4daf-8e80-41afa43b6348",        "paragraph_id": "e6d419fe-5017-47f6-acf1-0e74034aed4a",        "position": 7,        "city": "Berlin.",        "label": "Capital"      },      "0c0adcad-992f-4c30-aa58-7bf539f8d649": {        "case_id": "6f6e70f7-3257-4f26-a8fa-8cf0e5f97920",        "opinion_id": "71b435ff-112c-470b-a36b-c552e54a5605",        "paragraph_id": "e6d419fe-5017-47f6-acf1-0e74034aed4a",        "position": 3,        "city": "Frankfurt.",        "label": "Economic Capital"      },      "de968cdf-d865-4049-9f7d-f9a68be27432": {        "case_id": "2d749a58-412c-4bc8-b268-7d5f7bec3d9a",        "opinion_id": "1836c972-d6f7-420b-ba33-8f863cfca482",        "paragraph_id": "e6d419fe-5017-47f6-acf1-0e74034aed4a",        "position": 4,        "city": "Paris.",        "label": "Capital"      }    }我嘗試的是循環遍歷 json 并將值提取到字典列表中。它給我帶來了一個關鍵錯誤。我有點明白了。如果外部json的鍵相同,那么我可以使用text = jsonData['KEY'][i]["city"]with open(json_file_name) as input:    jsonData = json.load(input)    JSONLength = len(jsonData)    data = []    classes = dict()    for i in range(0, JSONLength):        text = jsonData[i]["city"]        label = jsonData[i]["label"]        print(text)        print(label)        data += [(classes[label], text)]
查看完整描述

3 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

迭代字典的值:

with open(json_file_name) as input:
    jsonData = json.load(input)
    data = [(values['city'], values['label']) for values in jsonData.values()]
        print(data

)

出去:

[('Berlin.', 'Capital'), ('Frankfurt.', 'Economic Capital'), ('Paris.', 'Capital')]


查看完整回答
反對 回復 2023-08-08
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

嘗試


data =   {

      "5c7a3dd5-29e4-4f5b-9dc8-d2d451906cf1": {

        "id": "1d14eba1-de9e-4e53-9e9e-619432fd815b",

        "opinion_id": "3063e6ff-1483-4daf-8e80-41afa43b6348",

        "paragraph_id": "e6d419fe-5017-47f6-acf1-0e74034aed4a",

        "position": 7,

        "city": "Berlin.",

        "label": "Capital"

      },

      "0c0adcad-992f-4c30-aa58-7bf539f8d649": {

        "case_id": "6f6e70f7-3257-4f26-a8fa-8cf0e5f97920",

        "opinion_id": "71b435ff-112c-470b-a36b-c552e54a5605",

        "paragraph_id": "e6d419fe-5017-47f6-acf1-0e74034aed4a",

        "position": 3,

        "city": "Frankfurt.",

        "label": "Economic Capital"

      },

      "de968cdf-d865-4049-9f7d-f9a68be27432": {

        "case_id": "2d749a58-412c-4bc8-b268-7d5f7bec3d9a",

        "opinion_id": "1836c972-d6f7-420b-ba33-8f863cfca482",

        "paragraph_id": "e6d419fe-5017-47f6-acf1-0e74034aed4a",

        "position": 4,

        "city": "Paris.",

        "label": "Capital"

      }

    }

    

city_n_label = [(x['city'],x['label']) for x in data.values()]

print(city_n_label)

輸出


[('Berlin.', 'Capital'), ('Frankfurt.', 'Economic Capital'), ('Paris.', 'Capital')]


查看完整回答
反對 回復 2023-08-08
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

嘗試這個


with open(json_file_name) as input:

    jsonData = json.load(input)

    for k, v in jsonData.items():

        print(k) # prints dynamic key

        print(v) # prints its corresponding obj

        print(v['city']) # will print city of the particular key

        print(v['label']) # will print label of the particular key


查看完整回答
反對 回復 2023-08-08
  • 3 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號