【问题标题】:Create dictionary from JSON从 JSON 创建字典
【发布时间】:2021-03-25 17:58:12
【问题描述】:

我有一个如下所示的 JSON 文件。如何使用列表推导为 gas、pm1、pm10 等创建单独的列表?

{
    'e00fce6866b13164840961dcdata': {
        '-MVId33W0ApTBDg1YtzV': {
            'gas': 52.7,
            'pm1': 0.1,
            'pm10': 0.1,
            'pm25': 0.1,
            'pr': 441.6,
            'rh': 14.6,
            'ta': 25.5,
            'ts': '2021-03-08T21:00:03Z'
        },
        '-MVIfE3Y2zWYzgrFefyr': {
            'gas': 52.7,
            'pm1': 0.1,
            'pm10': 0.2,
            'pm25': 0.2,
            'pr': 451.8,
            'rh': 14.1,
            'ta': 25,
            'ts': '2021-03-08T21:10:02Z'
        },
        ...
    }
}

【问题讨论】:

  • 我已根据您的要求编辑了答案

标签: python json python-3.x list-comprehension


【解决方案1】:

使用模块“json”和函数加载打开一个json文件内容到字典:

from json import loads
path = "my/path/to.json"
file = open(path, "r")
content = file.read().replace("'", '"')
dict1 = loads(content )
print(dictionnary)

然后你就可以使用你的dict使用列表的dist来存储信息了

datas = {}

for i1, key1 in enumerate(dict1):
    print("key1: " + str(key1))
    dict2 = dict1[key1]
    for i2, key2 in enumerate(dict2):
        print("key2: " + str(key2))
        dict3 = dict2[key2]
        for i3, key3 in enumerate(dict3):
            print("key3: " + str(key3))
            value = dict3[key3]
            if not key3 in datas:
                datas[key3] = [value]
            else:
                datas[key3].append(value)
            
print("datas: " + str(datas))

结果如下:

datas: {'gas': [52.7, 52.7], 'pm1': [0.1, 0.1], 'pm10': [0.1, 0.2], 'pm25': [0.1, 0.2], 'pr': [441.6, 451.8], 'rh': [14.6, 14.1], 'ta': [25.5, 25], 'ts': ['2021-03-08T21:00:03Z', '2021-03-08T21:10:02Z']}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2022-07-02
    • 1970-01-01
    相关资源
    最近更新 更多