python将文件解析为json

2024-05-16 21:10:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些日志文件,我想从中提取数据并将其导出为json。你知道吗

找到每个时间模式的变量timestamp,line,frequence,crossbow,numberIt得到一个值,我做:

stringToJson.append({timestamp:00000, line:RRL, frequence:3434Hz, crossbow:TKESS44, numberIt: 2}) 然后我把它扔了: json.dump(stringToJson, outfile)

结果是 [{timestamp:00000, line:RRL, frequence:3434Hz, crossbow:TKESS44, numberIt: 2},{timestamp:00000, line:RRL, frequence:3434Hz, crossbow:TKESS43, numberIt: 3},..., {timestamp:00001, line:CCL, frequence:8834Hz, crossbow:T1LS44, numberIt: 20}, {timestamp:00001, line:CCL, frequence:8834Hz, crossbow:T1LS45, numberIt: 21},..., ...]。你知道吗

我想要: [{00000:{“RRL”:{“3434Hz”:{“TKESS44”:5},{“TKESS44”:5},{00001:{“CCL”:{“8834Hz”:{“T1LS44”:20},{“T1LS45”:20}}}

我该怎么做?你知道吗

干杯


Tags: 文件数据jsonline时间timestampcclcrossbow
1条回答
网友
1楼 · 发布于 2024-05-16 21:10:15

python代码完全按照您的要求执行;您向它传递一个字典(带有诸如timestamp、line和frequence之类的键,并为其赋值),然后它返回给您一个“扁平”字典。你知道吗

假设变量的值与名称相对应,您可以像这样传递它们:line_valuefrequence_valuetimestamp_valuecrossbow_valuenumberIt_value。你知道吗

例如:

timestamp_value = "00000"
line_value = "RRL"
frequence_value = "3434Hz"
crossbow_value = "TKESS44"
numberIt_value = 2
stringToJson.append({str(timestamp_value) : {str(line_value) : {frequence_value : {str(crossbow_value) : int(numberIt_value)}}} })

给予

[{'00000': {'RRL': {'3434Hz': {'TKESS44': 2}}}}]

这就是你想要的,记住这样你就不会把键放在字典里,所以你需要“知道”你正在构建的JSON结构。你知道吗

相关问题 更多 >