pprint(): how to use double quotes to display strings?

后端 未结 1 748
梦毁少年i
梦毁少年i 2020-12-17 15:30

If I print a dictionary using pprint, it always wraps strings around single quotes (\'):

>>> from pprint import pprint
>>> ppr         


        
相关标签:
1条回答
  • 2020-12-17 15:42

    It looks like you are trying to produce JSON; if so, use the json module:

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

    The pprint() function produces Python representations, not JSON and quoting styles are not configurable. Don’t confuse the two syntaxes. JSON may at first glance look a lot like Python but there are more differences than just quoting styles:

    • JSON is limited to a few specific types only ({...} objects with key-value pairs, [...] arrays, "..." strings, numbers, booleans and nulls). Python data structures are far richer.
    • Python dictionary keys can be any hashable object, JSON object keys can only ever be strings.
    • JSON booleans are written in lowercase,true and false. Python uses title-case, True and False.
    • JSON uses null to signal the absence of a value, Python uses None.
    • JSON strings use UTF-16 codepoints, any non-BMP codepoint is encoded using surrogate pairs. Apart from a handful of single-letter backslash escapes such as \n and \" arbitrary codepoint escapes use \uXXXX 16-bit hexadecimal notation. Python 3 strings cover all of Unicode, and the syntax supports \xXX, \uXXXX, and \UXXXXXXXX 8, 16 and 32-bit escape sequences.

    If you want to produce indented JSON output (a bit like pprint() outputs indented Python syntax for lists and dictionaries), then add indent=4 and sort_keys=True to the json.dumps() call:

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

    See http://stackoverflow.com/questions/12943819/how-to-python-prettyprint-a-json-file

    0 讨论(0)
提交回复
热议问题