【发布时间】:2018-06-04 08:45:59
【问题描述】:
我遇到了一个问题,确实我有一个 JSON 文件,其中每个对象都在一行中。所以,如果有 100 个对象,就会有 100 行。
[{ "attribute1" : "no1", "attribute1": "no2"}
{ "attribute1" : "no12", "attribute1": "no22"}]
我打开这个 JSON 文件,并删除每个元素的一些属性。
然后,我想以相同的方式将对象写回文件中(1 个对象 = 1 行)。
我曾尝试使用“缩进”和“分隔符”这样做,但它不起作用。
我想要:
[{ "attribute1": "no2"}
{"attribute1": "no22"}]
感谢阅读。
with open('verbes_lowercase.json','r+',encoding='utf-8-sig') as json_data:
data=json.load(json_data)
for k in range(len(data)):
del data[k]["attribute1"]
json.dump(data,json_data,ensure_ascii=False , indent='1', separators=(',',':'))
json_data.seek(0)
json_data.truncate()
【问题讨论】:
-
你会得到什么样的错误,因为如果你有一个像上面描述的文件,你就没有有效的 json。它应该有
[{},{}]作为符号,然后你有一个有效的 json 文件要加载。 -
对不起,这只是一个例子。我没有任何错误。结果与我的预期不符。也许我发现了,在分隔符中我会放 '\n'。我会试试的。
-
\n确实是换行符。如果你使用windows你应该使用\r\n,Unix系统通常只需要\n -
@RonNabuurs 我使用 Windows,对于文本文件我写 \r\n 作为换行符,但对于 JSON 文件 \n 似乎足够了。 (用记事本++打开)。