我正在尝试使用Python开发代码,该代码在不删除逗号或方括号的情况下格式化JSON文件中的列表。该列表应该在每行上都有每组数据。我可以自己处理括号,但是逗号有问题。
我已经尝试过在.dump中包含一个缩进语句,但这不是正确的格式。
#Attempt 1
for data in data:
outfile.write('\t')
json.dump(data, outfile)
outfile.write('\n')
#Attempt 2
for obj in data:
outfile.write('\t' + json.dumps(obj) + '\n')
预期产量
[
[1, 12],
[2, 7],
[3, 6]
]
实际输出
[
[1, 12]
[2, 7]
[3, 6]
]
答案 0 :(得分:4)
您为什么要迭代?您应该一次性丢弃整个列表:
outfile.write(json.dumps(data))
答案 1 :(得分:1)
您可以修改Attempt 2
,以将逗号添加到除最后一个输出项之外的每个输出项中:
for ndx, obj in enumerate(data, 1):
outfile.write(
'\t'
+ json.dumps(obj)
+ (',' if ndx != len(data) else '')
+ '\n'
)
答案 2 :(得分:0)
我会使用类似的东西:
# Python 3+
import json
objects = [[1, 2], [3, 4]]
# the magic happens next line:
dump = "[\n" + ",\n".join([ "\t" + json.dumps(obj) for obj in objects ]) + "\n]"
print(dump)
with open("out", "w") as outfile:
outfile.write(dump)
json.dumps(obj)
将对象的JSON表示形式输出为字符串。制表符附加到每个对象表示形式,并使用,\n
进行连接。
输出:
[
[1, 2],
[3, 4]
]