Python 如何格式化输出对象到文件?

2016-02-08 21:39:05 +08:00
 fourstring

如题。。。
在做一个练手小项目,配置文件是直接用 py 源代码,里面存字典。
现在想做成既可以手动修改配置文件,也可以程序本身支持交互式修改。问题是 Python 默认的字典输出就挤在一块了。。。这样的话用户手动修改会很不方便。
所以请问有没有能用缩进分明的样式输出字典的方法?就像在 IDE 里手动输入字典的样子。。。
感谢!

4530 次点击
所在节点    Python
8 条回复
11
2016-02-08 21:43:45 +08:00
fourstring
2016-02-08 21:46:26 +08:00
@11 感谢!好棒的模块
Daniel65536
2016-02-08 23:05:11 +08:00
>>> import json
>>> config = ['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> print(json.dumps(parsed, indent=4, sort_keys=True))
[
"foo",
{
"bar": [
"baz",
null,
1.0,
2
]
}
]

with open('filename.txt', 'r') as handle:
parsed = json.load(handle)
leeyiw
2016-02-08 23:41:52 +08:00
JSON 、 ProtoBuf 、 Marshal 、 Pickle 都是不错的序列化库。
RqPS6rhmP3Nyn3Tm
2016-02-09 14:11:10 +08:00
序列化…我喜欢 json
KentY
2016-02-09 18:58:31 +08:00
zog
2016-02-11 09:29:29 +08:00
import pprint
pprint.pprint({'foo':{'bar':{'zee': 'hello'}}))

用 pprint 这个包
fourstring
2016-02-11 17:07:25 +08:00
@zog 是……我也才想起来这个包,被你一提醒我就想起来以前有个小玩意还用了这个……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255861

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX