滚动时报价被剥离

时间:2015-06-11 07:40:05

标签: python

命令

 sys_info_json = '"'+stamp+'":{"cpu_free" : "'+str[0]+'","disk_available" : "'+str[1]+'","disk_free" : "'+str[2]+'","ram" : "'+str[3]+'","memory_free" :"'+str[4]+'"}'
 print sys_info_json
 os.system("echo " + sys_info_json + " >> sys_info.txt")

这里的stamp和str []是预定义的。

我想以JSON格式保存数据。 在输入文本文件(sys_info.txt)时,双引号被剥离。

2 个答案:

答案 0 :(得分:3)

不要尝试通过字符串连接来构建JSON。有一个内置的库。并且不要通过os.system写入文件:使用openwrite函数。

import json
data = {"cpu_free" : str[0], "disk_available": str[1], "disk_free": str[2], "ram": str[3], "memory_free": str[4]}
with open('sys_info.txt', 'w') as f:
    f.write("%s:%s" % (stamp, json.dumps(data)))

此外,不要调用列表str,因为它是a)不是字符串,b)遮蔽内置str()函数。

答案 1 :(得分:0)

如果你想在系统shell中看到它们,你必须转义引号,类似这样的

string jsonString = "[ {"id": "1"}, {"id": "2", "category": "toys"} ]";

使用您的变量覆盖python In [16]: sys_info_json = '\\"test\\"' In [17]: os.system("echo " + sys_info_json) "test" Out[17]: 0 也不是一个好习惯。尝试使用未使用的python单词定义变量。