首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从解码的JSON对象中去掉"u“?

如何从解码的JSON对象中去掉"u“?
EN

Stack Overflow用户
提问于 2011-03-15 22:07:18
回答 3查看 32.4K关注 0票数 18

我有一本Python词典:

代码语言:javascript
复制
d = {"a11y_firesafety.html":{"lang:hi": {"div1": "http://a11y.in/a11y/idea/a11y_firesafety.html:hi"}, "lang:kn": {"div1": "http://a11y.in/a11ypi/idea/a11y_firesafety.html:kn}}}

我有一个JSON文件,并使用json.dumps()对其进行了编码。现在,当我在Python语言中使用json.loads()对其进行解码时,我得到了如下结果:

代码语言:javascript
复制
temp = {u'a11y_firesafety.html': {u'lang:hi': {u'div1': u'http://a11y.in/a11ypi/idea/a11y_firesafety.html:hi'}, u'lang:kn': {u'div1': u'http://a11y.in/a11ypi/idea/a11y_firesafety.html:kn'}}}

我的问题是"u“,它表示我的temp (字典字典)中每个条目前面的Unicode编码。如何摆脱那个"u"?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-15 22:33:08

你为什么要关心“u”字符?它们只是一个可视指示器;除非您在代码中实际使用了str(temp)的结果,否则它们对您的代码没有任何影响。例如:

代码语言:javascript
复制
>>> test = u"abcd"
>>> test == "abcd"
True

如果出于某种原因它们确实很重要,并且您并不关心不能在国际环境中使用这些代码之类的后果,那么您可以传入一个自定义object_hook (请参阅此处的json文档)来生成包含字符串内容而不是unicode的字典。

票数 18
EN

Stack Overflow用户

发布于 2013-05-31 22:20:10

您还可以使用以下命令:

代码语言:javascript
复制
import fileinput

fout = open("out.txt", 'a')

for i in fileinput.input("in.txt"):

   str = i.replace("u\"","\"").replace("u\'","\'")

   print >> fout,str

来自标准网站的典型json响应有这两个编码表示- u‘和u“这个代码片段去掉了这两个编码。

票数 3
EN

Stack Overflow用户

发布于 2011-03-15 22:13:23

没有" unicode“编码,因为unicode是一种不同的数据类型,我真的看不出unicode会有什么问题,因为你总是可以把它转换成字符串,比如foo.encode('utf-8')

但是,如果您确实希望预先拥有string对象,那么您可能应该创建自己的decoder class,并在解码JSON时使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5312948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档