2024-10-02 20:36:08 发布
网友
我试图将西班牙语单词的翻译存储为json。但是在python字典和json字符串之间来回转换的过程把我的数据搞乱了。在
代码如下:
import json text={"hablar":"reden"} print(text) # {'hablar': 'reden'} data=json.dumps(text) text=json.loads(data) print(text) # {u'hablar': u'reden}
为什么加上字母“u”?在
u字符的意思是这个字符串是unicode,所以可以使用yaml而不是json 所以代码是:
import yaml text={"hablar":"reden"} print(text) # {'hablar': 'reden'} data=yaml.dump(text) text=yaml.load(data) print(text) # {'hablar': 'reden}
这个问题有更多关于yaml的细节: What is the difference between YAML and JSON? When to prefer one over the other
JSON中的字符串被加载到Python中的unicode字符串中。在
如果打印字典,则打印的是repr()形式的键和值。但是字符串本身仍然只包含reden。在
repr()
reden
>>> print(repr(text["hablar"])) u'reden' >>> print(text["hablar"]) reden
一切都会好起来的。Unicode是处理“人类可读”字符串的首选方法。JSON本身不支持二进制数据,因此将JSON字符串解析为Python unicode是有意义的。在
unicode
您可以在这里阅读有关Python中Unicode的更多信息:http://docs.python.org/2/howto/unicode.html
In Python source code, Unicode literals are written as strings prefixed with the ‘u’ or ‘U’ character: u'abcdefghijk'.
u'abcdefghijk'
json.loads将字符串读取为unicode1。一般来说,这不会伤害任何东西。在
json.loads
1只有unicode对象的表示形式tryprint(text['hablar']),u将不存在。
print(text['hablar'])
u
u字符的意思是这个字符串是unicode,所以可以使用yaml而不是json 所以代码是:
这个问题有更多关于yaml的细节: What is the difference between YAML and JSON? When to prefer one over the other
JSON中的字符串被加载到Python中的unicode字符串中。在
如果打印字典,则打印的是
repr()
形式的键和值。但是字符串本身仍然只包含reden
。在一切都会好起来的。Unicode是处理“人类可读”字符串的首选方法。JSON本身不支持二进制数据,因此将JSON字符串解析为Python
unicode
是有意义的。在您可以在这里阅读有关Python中Unicode的更多信息:http://docs.python.org/2/howto/unicode.html
json.loads
将字符串读取为unicode1。一般来说,这不会伤害任何东西。在1只有unicode对象的表示形式try
print(text['hablar'])
,u
将不存在。相关问题 更多 >
编程相关推荐