Python新手,Python版本:2.7.10,机器:Mac OS Sierra。你知道吗
Susi Sushanti Don $ python -c "import sys, json; print(json.load(open('/tmp/2.json'))['pages'])"
{u'giga-10': [u'overview']}
Susi Sushanti Don $ python -c "import sys, json; print(str(json.load(open('/tmp/2.json'))['pages']))"
{u'giga-10': [u'overview']}
为什么即使我使用了str()
,python仍然打印u
字符?我在另一篇文章中读到,使用string不会在std输出中打印它。有没有类似的str()函数可以处理任何Python数据对象(而不是自己编写一个可重用的函数)?你知道吗
我希望输出只是{'giga-10': ['overview']}
它仍在打印
u
,因为对象中有unicode
对象的元素,这就是python打印包含unicode对象的对象的方式。你知道吗有
unicode
对象是有意义的,因为您正在反序列化JSON,而对应于JSON字符串的适当数据结构是python2unicode
对象。你知道吗注意,如果打印
unicode
对象,它不会打印u
,因为u
实际上不是unicode字符串的一部分:这真的不重要。你应该让它不再困扰你。但是如果出于某种疯狂的原因坚持要摆脱这些
u
类型,那么就必须将从JSON反序列化的任意对象中的任何unicode对象转换为str
类型。这需要解码unicode对象。只要您没有提供任何钩子,以下内容应该适用于json.load
的任何结果:但是没有很好的理由这样做,除非您真的需要python2
str
,即“字节字符串”。你几乎可以肯定没有,或者至少,没有指出任何理由。你知道吗如果要使用python,可能需要
json.dumps()
。e、 克为此,为什么不将
jq
JQ实用程序用于单行程序呢。你知道吗您可以实现:
别忘了检查一下这个URL:https://jqplay.org/它真的帮助我学习/观察了
jq
如何处理输入数据。你知道吗相关问题 更多 >
编程相关推荐