当前位置: 首页 > 知识库问答 >
问题:

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

冀翰翮
2023-03-14

如果我使用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}

共有1个答案

子车宏浚
2023-03-14

看起来您正在尝试生成JSON;如果是,请使用json模块:

>>> import json
>>> print json.dumps({'AAA': 1, 'BBB': 2, 'CCC': 3})
{"AAA": 1, "BBB": 2, "CCC": 3}

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

  • JSON仅限于几种特定类型({...}具有键值对的对象、[...]数组、“...”字符串、数字、布尔值和空值)。Python数据结构要丰富得多。
  • Python字典键可以是任何哈希对象,JSON对象键只能是字符串。
  • JSON布尔值是用小写、truefalse编写的。Python使用标题大小写、truefalse
  • JSON使用null表示没有值,Python使用none
  • JSON字符串使用UTF-16码点,任何非BMP码点都使用代理对编码。除了少数几个单字母反斜杠转义,如\n\“之外,任意代码点转义使用\uxxxx16位十六进制表示法。Python 3字符串覆盖所有Unicode,语法支持\xxxx\uxxxxxx\uxxxxxxx8、16和32位转义序列。

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

>>> print json.dumps({'AAA': 1, 'CCC': 2, 'BBB': 3}, indent=4, sort_keys=True)
{
    "AAA": 1,
    "BBB": 2,
    "CCC": 3
}

参见html" target="_blank">http://stackoverflow.com/questions/12943819/how-to-python-prettyprint-a-json-file

 类似资料:
  • 问题内容: 我想从字符串中删除一个双引号(“)开头和结尾。 如何在Java中实现呢?谢谢! 问题答案: 您可以为此使用模式。 例如 要了解有关正则表达式的更多信息,请访问http://regular-expression.info。 也就是说,这有点像您要发明CSV解析器的味道。如果是这样,我建议您四处看看现有的库,例如OpenCSV。

  • 本文向大家介绍PowerShell中字符串使用单引号和双引号的区别,包括了PowerShell中字符串使用单引号和双引号的区别的使用技巧和注意事项,需要的朋友参考一下 本文介绍PowerShell开发时,在字符串中如何去包含变量。将变量包含在字符串中,最后得到的结果是将变量的值放入到了字符串中。 假如有一个字符串变量:$p = "PowerShell" 那么 $str="Hello $p",这时,

  • 问题内容: 我需要使用正则表达式,检查一个字符串以a开头 的双引号 字符(),用两端 的双引号 字符了。 问题是我不能使用 双引号 字符,导致混淆。还有其他方法可以在正则表达式中或一般在字符串中表示 双引号 字符吗? 问题答案: 首先,双引号字符在regex中没什么特别的-它只是另一个字符,因此 从regex的角度来看 不需要转义。 但是,由于Java使用双引号 分隔 字符串常量,因此,如果要在J

  • 问题内容: 如何在浏览器中显示的JavaScript字符串中包含双引号? 我正在做JavaScript作业,我必须在列表中间加上双引号,如下所示: 问题答案: 使用单引号。 或转义双引号。

  • 本文向大家介绍groovy 双引号字符串(插值),包括了groovy 双引号字符串(插值)的使用技巧和注意事项,需要的朋友参考一下 示例 默认情况下会急切解析该参数,这意味着适用: 为了在每次使用字符串时延迟加载参数,可以这样做:            

  • 问题内容: 如何使用PHP 用(我认为其称为单引号)替换(我认为它称为双引号)? 问题答案: 或重新分配