【问题标题】:python - parsing file to json [closed]python - 将文件解析为 json [关闭]
【发布时间】:2017-11-06 08:14:24
【问题描述】:

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

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

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}}}}

我该怎么做?

干杯,

【问题讨论】:

  • 你能证明自己任何努力解决这个问题吗?

标签: python json parsing


【解决方案1】:

您的 python 代码完全按照您的要求执行;你向它传递一个字典(带有时间戳、行和“频率”之类的键并为其分配值),它会给你一个“平面”字典作为回报。

假设您的变量 VALUES 与名称相对应,您可以通过以下方式传递它们: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 结构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多