首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pprint():如何使用双引号显示字符串?

pprint():如何使用双引号显示字符串?
EN

Stack Overflow用户
提问于 2013-04-18 23:54:49
回答 1查看 10.2K关注 0票数 17

如果我使用pprint打印字典,它总是用单引号(')将字符串括起来:

代码语言:javascript
复制
>>> from pprint import pprint
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3})
{'AAA': 1, 'BBB': 2, 'CCC': 3}

有没有办法让pprint改用双引号(")?我希望有以下行为:

代码语言:javascript
复制
>>> from pprint import pprint
>>> pprint({'AAA': 1, 'BBB': 2, 'CCC': 3})
{"AAA": 1, "BBB": 2, "CCC": 3}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-19 00:02:00

看起来您正在尝试生成JSON;如果是这样,请使用json module

代码语言:javascript
复制
>>> import json
>>> print json.dumps({'AAA': 1, 'BBB': 2, 'CCC': 3})
{"AAA": 1, "BBB": 2, "CCC": 3}

pprint()函数生成Python表示,而不是JSON,并且引用样式是不可配置的。不要混淆这两种语法。乍一看,JSON看起来很像Python,但除了引用样式之外,还有更多的区别:

  • JSON仅限于少数特定类型(具有键-值对的{...}对象、[...]数组、"..."字符串、数字、布尔值和空值)。Python数据结构要丰富得多,JSON字典键可以是任何哈希对象,

对象键只能是字符串。

  • JSON布尔值是用小写、truefalse编写的。Python使用标题大小写、TrueFalse。Python使用None.
  • JSON字符串使用

-16代码点,任何非

  • 代码点都是null。除了少数单字母反斜杠转义外,如\n\",任意码点转义都使用\uXXXX 16位十六进制表示法。Python 3字符串涵盖所有Unicode,语法支持\xXX\uXXXX\UXXXXXXXX 8、16和32位转义序列。

如果您想生成缩进的JSON输出(有点像列表和字典的pprint()输出缩进的Python语法),那么将indent=4sort_keys=True添加到json.dumps()调用中:

代码语言:javascript
复制
>>> 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

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16087662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档