当我使用json.loads时你有什么用?

Zen*_*hat 18 python json encode

我一直在编写一个Python脚本来解析Soundcloud API中的JSON信息,当我使用json.loads(val)以及如何将JSON信息存储到一个对象时,我只是想知道"u"是什么.美国?

也就是说你为什么这样:

>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
Run Code Online (Sandbox Code Playgroud)

请参阅此处的"解码JSON"部分以了解我的意思:

http://docs.python.org/library/json.html

谢谢!

Fra*_*ila 15

Unicode字符串.请参阅Python教程.

在Python源代码中,Unicode文字被编写为前缀为"u"或"U"字符的字符串:u'abcdefghijk'.

- Python源代码中的Unicode文字


Ale*_*aly 7

u's为那里指示Unicode字符串应该被创建.

它很糟糕,它将json.dump字符串转换为unicode字符串,并且没有留下任何痕迹,因为json.load它无法转换回来.

要转换为字符串对象,请使用PyYAML:

>>> import yaml
>>> yaml.load('["foo", {"bar":["baz", null, 1.0, 2]}]')
>>> ['foo', {'bar': ['baz', None, 1.0, 2]}]
Run Code Online (Sandbox Code Playgroud)

但小心!如果由于某种原因你json.dump编写了一个包含对象字符串和unicode字符串的对象,yaml则会将所有内容作为对象字符串加载(尽管这json.dump确实是错误的)