【发布时间】:2017-04-30 15:47:53
【问题描述】:
我正在写一些最终会输出 json 文件的东西。
这是我目前要测试的内容
import json
my_list = [1, 2, 3]
my_dict = {"key": "value", "boolean": True}
my_json = {"object": my_dict, "array": my_list}
print(json.dumps(my_json, indent=4))
这将输出:
{
"object": {
"key": "value",
"boolean": true
},
"array": [
1,
2,
3
]
}
我不想要的是数组中每个值之后的换行符,纯粹是出于审美目的,即
"array": [1, 2, 3]
我该怎么做呢?
【问题讨论】:
-
你试过删除
indent=4吗? -
我猜你可以使用正则表达式来搜索和替换。但是你想如何处理包含嵌套在其他列表和字典中的列表和字典的更复杂的 JSON?要获得完全控制,您可以实现自己的继承自
json.JSONEncoder的类。 -
已关闭,但关闭消息中的链接指向一个过于复杂的答案。使用这个:
print(json.dumps(my_json, indent=None, separators=(",",":"))),这导致紧凑的单行形式{"object":{"key":"value","boolean":true},"array":[1,2,3]} -
在我看来过于急切。这是一个非常简单的问题,而密切的提示指向一个非常复杂的答案。上面的 mgaert 提供了一个可以解决问题的单行代码。
-
当数组长度为 100 或 1000 项时怎么办?你是如何渲染 json 字符串的?也许您可以使用不同的程序来渲染和探索 json,例如 firefox 或 chrome 浏览器,它们允许您展开和折叠书架?