我正在尝试使用json库在PC上编辑文本文件,这就是Text.txt文件包含的内容:
{"name": "mike", "born": 1998}
这是我正在编写的代码
import json
text = """\
{
"look": "avarage",
"income": "high"
}"""
File = open("Test.txt", "r+")
json_from_file = json.load(File)
json_from_text = json.loads(text)
json_from_file.update(json_from_text)
File.truncate(0)
json.dump(json_from_file, File)
File.close()
Text.txt应包含:
{"name": "mike", "born": 1998, "look": "avarage", "income": "high"}
但是相反,我在开头有几个空白(总共31个),看起来像这样
{"name": "mike", "born": 1998, "look": "avarage", "income": "high"}
有什么想法可以摆脱它吗?
答案 0 :(得分:1)
用seek代替截断:
import json
text = """\
{
"look": "avarage",
"income": "high"
}"""
File = open("Test.txt", "r+")
json_from_file = json.load(File)
json_from_text = json.loads(text)
json_from_file.update(json_from_text)
File.seek(0)
json.dump(json_from_file, File)
File.close()
File.truncate
不会更改当前文件位置,并且由于您已经读取了文件,因此已处于文件位置(示例中为31个字符)。
请记住,如果您以某种方式修改文件以使其更短,那么仅File.seek
就不会起作用,因为您可能会在末尾留下不需要的字符。