如果我使用pprint
打印字典,它总是将字符串包裹在单引号('
)周围:
>>> from pprint import pprint
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3})
{'AAA': 1, 'BBB': 2, 'CCC': 3}
有没有办法告诉pprint
使用双引号("
)?我想有以下行为:
>>> from pprint import pprint
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3})
{"AAA": 1, "BBB": 2, "CCC": 3}
答案 0 :(得分:16)
看起来你正在尝试制作JSON;如果是,请使用json
module:
>>> import json
>>> print json.dumps({'AAA': 1, 'BBB': 2, 'CCC': 3})
{"AAA": 1, "BBB": 2, "CCC": 3}
pprint()
函数生成 Python表示,而不是JSON,引用样式不可配置。不要混淆这两种语法。 JSON乍一看可能看起来很像Python,但除了引用样式之外还有更多的区别:
{...}
个对象,其中包含键值对,[...]
数组,"..."
字符串,数字,布尔值和空值。 Python数据结构更加丰富。true
和false
编写。 Python使用标题大小写True
和False
。 null
表示缺少值,Python使用None
。\n
和\"
任意代码点转义,使用\uXXXX
16位十六进制表示法。 Python 3字符串涵盖了所有Unicode,语法支持\xXX
,\uXXXX
和\UXXXXXXXX
8,16和32位转义序列。如果要生成缩进的JSON输出(有点像pprint()
输出列表和词典的缩进Python语法),则将indent=4
和sort_keys=True
添加到json.dumps()
拨打:
>>> print json.dumps({'AAA': 1, 'CCC': 2, 'BBB': 3}, indent=4, sort_keys=True)
{
"AAA": 1,
"BBB": 2,
"CCC": 3
}
请参阅http://stackoverflow.com/questions/12943819/how-to-python-prettyprint-a-json-file