我希望使用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'])不可序列化
答案 0 :(得分:2)
以u
开头的字符串是unicode字符串。
对于您而言,这与问题无关:
data= {u'dot',
u'dog',
u'fog',
u'eeee'}
这将创建一个集合并将结果存储在data变量中。 json序列化程序无法处理集合,因为json规范未提及它们。如果将其更改为列表,则序列化程序可以处理数据:
res = set(eval(json.dumps(list(data))))
在这里,我将数据变量转换为列表以进行序列化,然后将其转换回集合以将结果存储在res变量中。
或者,您可以直接要求Python使用以下方式将unicode字符串转换为字符串:
res = {x.encode("utf-8") for x in data}
print(res)