簡體   English   中英

使用Python解析嵌套的JSON並返回人類可讀的信息

[英]Parse a nested JSON with Python and return human-readable info

我需要使用python解析嵌套的JSON文件,並將人類可讀的信息返回給用戶。

我嘗試將map()函數alomg與提供解釋的字典一起使用,但是它似乎不適用於嵌套JSON(或者我做錯了)。 問題還在於,級別2的鍵可能會重復顯示,如下所示,“可消費”和“硬幣”內部都具有“ 1”和“ 2”:

我的JSON如下所示:

{
"consumable": {
"1": 5,
"2": 10
},
"coin": {
"1": 2000,
"2": 5000
},
"gold": 10000
}

我從腳本中期望的是,當我復制JSON時,我將收到人類可讀的數據,因此“消耗品1:5”變成“法力葯水:5個”,“消耗品2:10”變成“ HP葯水”。 :“ 10個”,“硬幣1:2000”變成“美元:2000”,“硬幣2:5000”變成“歐元:5000”,依此類推。 還有一些東西沒有嵌套在那里,因此它們應該像常規JSON一樣進行解析。

我什至都不是程序員,也不知道如何實現。

不是很漂亮,但是可以滿足您的期望:

import json
json_string = '{ "consumable": { "1": 5, "2": 10 }, "coin": { "1": 2000, "2": 5000 }, "gold": 10000}'

content = json.loads(json_string)

for elem in content:
    if elem == 'consumable':
        for index in content[elem]:
            if index == '1':
                print(f'mana potion: {content[elem][index]} pcs')
            elif index == '2':
                print(f'HP potion: {content[elem][index]} pcs')
    elif elem == 'coin':
        for index in content[elem]:
            if index == '1':
                print(f'dollar: {content[elem][index]}')
            elif index == '2':
                print(f'euro: {content[elem][index]}')

打印:

魔力葯水:5個
惠普葯水:10個
美元:2000
5000歐元

更好的方法是在json和人類可讀的字符串之間創建一個映射字典。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM