命令
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)时,双引号被剥离。
答案 0 :(得分:3)
不要尝试通过字符串连接来构建JSON。有一个内置的库。并且不要通过os.system
写入文件:使用open
和write
函数。
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单词定义变量。