当键是一个字节时,从 python 中的字典创建数据帧?
Create dataframe from a dictionary in python when the key is a byte?
我想从字典中的特定数据创建数据框。关键是一个字节,我不明白如何“以有用的方式从字节中获取信息”。如果我能将我需要的数据放入数据框中,我就会知道如何处理它(排序、绘图等)
我有这本字典:
{'SequenceNumber': 2654504175, 'Offset': '67826126730624', 'EnqueuedTimeUtc': '7/10/2020 1:18:00 PM', 'SystemProperties': {}, 'Properties': {}, 'Body': b'{"id": "MicroSCADA OPC DA.S_M.APL.1.P.P_R_P.1", "ts": "2020-07-10T13:17:24.654000", "value": 1.1293551921844482, "status_code": 0}'}
这是读取avro文件中一个数据点的结果。我需要的数据在'Body'.
里面
我去:
x=my_dict.get("Body)
结果是:
b'{"id": "MicroSCADA OPC DA.S_M.APL.1.P.P_R_P.1", "ts": "2020-07-10T13:17:24.654000", "value": 1.1293551921844482, "status_code": 0}'
我想将数据分类为具有“id”、“ts”、“value”和“status code”列的数据框。我该怎么做?
我也试过pandavro,但是byte还是把我需要的数据“锁”在一起了。我已经尝试将字节转换为字符串,但是键和它的值自然不再属于一起了。
如何以最好的方式解决这个问题?
将字节字符串转换为字符串,对其求值并将其转换为数据帧:
dic = {'SequenceNumber': 2654504175, 'Offset': '67826126730624', 'EnqueuedTimeUtc': '7/10/2020 1:18:00 PM', 'SystemProperties': {}, 'Properties': {}, 'Body': b'{"id": "MicroSCADA OPC DA.S_M.APL.1.P.P_R_P.1", "ts": "2020-07-10T13:17:24.654000", "value": 1.1293551921844482, "status_code": 0}'}
d = eval(dic["Body"].decode("utf-8"))
df = pd.DataFrame([list(d.values())],columns = list(d.keys()))
df
输出:
id ts value status_code
0 MicroSCADA OPC DA.S_M.APL.1.P.P_R_P.1 2020-07-10T13:17:24.654000 1.129355 0
我想从字典中的特定数据创建数据框。关键是一个字节,我不明白如何“以有用的方式从字节中获取信息”。如果我能将我需要的数据放入数据框中,我就会知道如何处理它(排序、绘图等)
我有这本字典:
{'SequenceNumber': 2654504175, 'Offset': '67826126730624', 'EnqueuedTimeUtc': '7/10/2020 1:18:00 PM', 'SystemProperties': {}, 'Properties': {}, 'Body': b'{"id": "MicroSCADA OPC DA.S_M.APL.1.P.P_R_P.1", "ts": "2020-07-10T13:17:24.654000", "value": 1.1293551921844482, "status_code": 0}'}
这是读取avro文件中一个数据点的结果。我需要的数据在'Body'.
里面我去:
x=my_dict.get("Body)
结果是:
b'{"id": "MicroSCADA OPC DA.S_M.APL.1.P.P_R_P.1", "ts": "2020-07-10T13:17:24.654000", "value": 1.1293551921844482, "status_code": 0}'
我想将数据分类为具有“id”、“ts”、“value”和“status code”列的数据框。我该怎么做?
我也试过pandavro,但是byte还是把我需要的数据“锁”在一起了。我已经尝试将字节转换为字符串,但是键和它的值自然不再属于一起了。
如何以最好的方式解决这个问题?
将字节字符串转换为字符串,对其求值并将其转换为数据帧:
dic = {'SequenceNumber': 2654504175, 'Offset': '67826126730624', 'EnqueuedTimeUtc': '7/10/2020 1:18:00 PM', 'SystemProperties': {}, 'Properties': {}, 'Body': b'{"id": "MicroSCADA OPC DA.S_M.APL.1.P.P_R_P.1", "ts": "2020-07-10T13:17:24.654000", "value": 1.1293551921844482, "status_code": 0}'}
d = eval(dic["Body"].decode("utf-8"))
df = pd.DataFrame([list(d.values())],columns = list(d.keys()))
df
输出:
id ts value status_code
0 MicroSCADA OPC DA.S_M.APL.1.P.P_R_P.1 2020-07-10T13:17:24.654000 1.129355 0