我正在使用Python处理一些json数据。我循环遍历我的数据(它们都是字典),当我将循环值打印到控制台时,每行输出一个字典。
但是,当我使用json.dumps()将对象转换为字符串以便输出时,字典内部会有多行而不是想要在字典外面加上新行。
在循环中如何在每个字典值后添加新行?
代码示例:
我需要添加哪些代码才能使每个字典值都换行,以便输出文件与控制台输出的一样?
但是,当我使用json.dumps()将对象转换为字符串以便输出时,字典内部会有多行而不是想要在字典外面加上新行。
在循环中如何在每个字典值后添加新行?
代码示例:
def test(values, filename):
with open(filename, 'w') as f:
for value in values:
print(json.dumps(value, sort_keys=True)) # gives me each dictionary in a new line
f.write(json.dumps(value, sort_keys=True, indent=0) #gives me a new line for each key/value pair instead of after each dictionary.
控制台输出:
{"first_name": "John", "last_name": "Smith", "food": "corn"}
{"first_name": "Jane", "last_name": "Doe", "food": "soup"}
我的输出文件中的输出内容:
{"first_name": "John", "last_name": "Smith", "food": "corn"}{"first_name": "Jane", "last_name": "Doe", "food": "soup"}
我需要添加哪些代码才能使每个字典值都换行,以便输出文件与控制台输出的一样?
print
命令会添加一个换行符,而file.write
命令则不会。 - user2357112print(json.dumps(value, sort_keys=True), file=f)
来实现。 - Dennis