Mar*_*iou 5 python dictionary pretty-print pprint
代码是:
from pprint import pprint
d = {"b" : "Maria", "c" : "Helen", "a" : "George"}
pprint(d, width = 1)
Run Code Online (Sandbox Code Playgroud)
输出为:
{'a': 'George',
'b': 'Maria',
'c': 'Helen'}
Run Code Online (Sandbox Code Playgroud)
但是,所需的输出是:
{'b': 'Maria',
'c': 'Helen',
'a': 'George'}
Run Code Online (Sandbox Code Playgroud)
可以使用pprint完成此操作,还是有其他方法?
Oli*_*çon 11
您可以使用sort_dicts=False来防止它按字母顺序对它们进行排序:
pprint.pprint(data, sort_dicts=False)
Run Code Online (Sandbox Code Playgroud)
从 Python 3.7(或在 cPython 的情况下为 3.6),dict保留插入顺序。对于之前的任何版本,您都需要使用 anOrderedDict来保持密钥有序。
虽然,从文档开始pprint:
字典在计算显示之前按关键字排序。
这意味着pprint无论如何都会破坏您想要的订单。
您还可以使用json.dumps漂亮的打印数据。
代码:
import json
from collections import OrderedDict
# For Python 3.6 and prior, use an OrderedDict
d = OrderedDict(b="Maria", c="Helen", a="George")
print(json.dumps(d, indent=1))
Run Code Online (Sandbox Code Playgroud)
输出:
{
"b": "Maria",
"c": "Helen",
"a": "George"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |