Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 拆下';u';在JSON字典中_Python_Json - Fatal编程技术网

Python 拆下';u';在JSON字典中

Python 拆下';u';在JSON字典中,python,json,Python,Json,我希望通过json文件使用字典加载。但是,每个项目都包含字符“u”。我需要删除“u” 我尝试过转储,但不起作用 import ast import json data= {u'dot', u'dog', u'fog', u'eeee'} res = eval(json.dumps(data)) print res 我希望得到:{ “点”, “狗”, "雾,, “eeee” } 但错误在于: TypeError:set([u'eeee',u'fog',u'dog',u'dot'])不可

我希望通过json文件使用字典加载。但是,每个项目都包含字符“u”。我需要删除“u”

我尝试过转储,但不起作用

import ast
import json

data= {u'dot',
 u'dog',
 u'fog',
 u'eeee'}

res = eval(json.dumps(data))
print res
我希望得到:{ “点”, “狗”, "雾,, “eeee” }

但错误在于:

TypeError:set([u'eeee',u'fog',u'dog',u'dot'])不可JSON序列化


u
开头的字符串是unicode字符串

在您的情况下,这与问题无关:

data={u'dot',
“狗”,
u‘雾’,
u'eeee'}
这将创建一个集合并将结果存储在数据变量中。json序列化程序无法处理集合,因为json规范没有提到集合。如果将其更改为列表,序列化程序可以处理数据:

res=set(eval(json.dumps(list(data)))
在这里,我将数据变量转换为一个列表以序列化它,然后将其转换回一个集合以将结果存储在res变量中

或者,您可以直接要求Python将unicode字符串转换为字符串,如下所示:

res={x.encode(“utf-8”)表示数据中的x}
打印(res)

u
开头的字符串是unicode字符串

在您的情况下,这与问题无关:

data={u'dot',
“狗”,
u‘雾’,
u'eeee'}
这将创建一个集合并将结果存储在数据变量中。json序列化程序无法处理集合,因为json规范没有提到集合。如果将其更改为列表,序列化程序可以处理数据:

res=set(eval(json.dumps(list(data)))
在这里,我将数据变量转换为一个列表以序列化它,然后将其转换回一个集合以将结果存储在res变量中

或者,您可以直接要求Python将unicode字符串转换为字符串,如下所示:

res={x.encode(“utf-8”)表示数据中的x}
打印(res)

这里似乎是这样做的:最简单的“摆脱”
u
的方法是升级到Python 3。这里似乎是这样做的:最简单的“摆脱”
u
的方法是升级到Python 3。由于提到了Python的unicode转换,并且给出了详细的答案,所以被投票支持。谢谢,它对set非常有效,当它改成字典时,它仍然不能正常工作,例如:我的字典={u'animal':[u'dog',u'cat',u'food':[u'rice',u'bread',u'milk']}一些其他字典=json.loads(json.dumps(My'Dict))打印一些其他字典(res是:{u'food':[u'rice',u'bread',u'milk',u'malk',u'animal:[u'dog',u'cat']))更复杂的类型将需要更多的工作来解析。让您了解如何在一次调用中解析Dict、set或list。Upvoted提到了python的unicode转换,并给出了详细的答案谢谢,它对set很有效,当它更改为dictionary时,它仍然不起作用,例如:My_Dict={u'animal':[u'dog',u'cat',u'food:[u'rice',u'bread',u'milk']}some_other_dict=json.load(json.dumps(My_dict))打印some_other_dict(res是:{u'food':[u'rice',u'bread',u'milk'],u'animal':[u'dog',u'cat'])更复杂的类型需要更多的解析工作。让您了解如何在一次调用中解析dict、set或list。