【问题标题】:Python, print(str) to json, how? [duplicate]Python,打印(str)到json,如何? [复制]
【发布时间】:2022-01-21 13:40:57
【问题描述】:

我为 Keylight 34792A 编写了一个小“工具”,它应该进行测量并将其作为变量输出给我。它在控制台(打印)中为我提供了结果,我想将结果保存在 json 文件中,不幸的是我不知道该怎么做,有人可以帮助我吗? 每次扫描后,文件应从头开始覆盖。

我的代码:

 #\n after every data
print("Werte:")
for chan in range(1, numberChannels + 1):
    dmm.write("DATA:REMOVE? 1")
    raw = str(dmm.read())      #ergebnisse
    print(raw[0:2] + raw[4] + "." + raw[5:8] + "°" + " " + raw[-4:-1] + " " + zeitpunkt)

【问题讨论】:

  • 您希望结果是什么样的?它是raw 数据的列表吗?问题不在于dmm,所以也许你的例子应该是罐头raw 字符串。查看标准库中的json 模块。
  • 所以,原始数据看起来像 +2.0103403E+1,字符串给出“Werte: +21.350° 101 2021.12.19-17:32:09 +15.170° 102 2021.12.19-17: 32:09 +32.510° 103 2021.12.19-17:32:09 +37.830° 104 2021.12.19-17:32:09 +35.360° 105 2021.12.19-17:32:09" 出
  • 嗯,你知道如何创建 JSON 数据吗?你知道如何打开和写入文件吗?你知道你希望 JSON 有什么样的结构吗? 问题究竟是什么?
  • 把这些信息放在问题中,最好放在一个我们可以轻松复制的代码块中。输出应该是什么?这些空格分隔的字段是否打算成为列表的一部分?在问题中包含所需的输出。
  • 不,我还没有使用过 json,我认为这就是问题所在。我必须进一步了解它。输出应该和打印出来的一样。。

标签: python json


【解决方案1】:

使用 json 模块将 json 编码为文件。看起来您有 3 个字段,因此我更改了代码以将它们解析为将添加到 json 数据中的列表。

import json

print("Werte:")
result = []

for chan in range(1, numberChannels + 1):
    dmm.write("DATA:REMOVE? 1")
    raw = str(dmm.read())      #ergebnisse
    data = [raw[0:2] + raw[4] + "." + raw[5:8] + "°", raw[-4:-1], zeitpunkt]
    print(" ".join(data))
    result.append(data)
    
with open("mydata.json", "w") as file:
    json.dump(result, file)

【讨论】:

  • 嘿,感谢您的回答,不幸的是,json 中只有一行 5 行。["+14.900\u00b0", "105", "2021.12.19-17:59:06"]
  • 写错了列表。固定。
  • 它可以工作,但是每个结果都在同一行,我该把“\ n”放在哪里?
  • json 文件? json 默认情况下不添加换行符。它是由计算机为计算机编写的。你可以查找“json pretty print”——这个问题例如stackoverflow.com/questions/12943819/…
猜你喜欢
  • 2013-02-03
  • 1970-01-01
  • 2015-10-23
  • 2018-08-06
  • 2017-12-23
  • 1970-01-01
  • 1970-01-01
  • 2019-09-29
  • 2013-03-05
相关资源
最近更新 更多