从 JSON 创建字典

问题描述

我有一个 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,'pm10': 0.2,'pm25': 0.2,'pr': 451.8,'rh': 14.1,'ta': 25,'ts': '2021-03-08T21:10:02Z'
        },...
    }
}

解决方法

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

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

然后你可以使用你的字典使用列表的 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,'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']}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...