从Dictionary数据中删除Unicode

时间:2014-10-10 21:16:56

标签: python python-2.7 dictionary unicode

我有以下字典

  My_Dict= { u'Apple': [u'A' , u'B'] ,u'orange': [u'C' , u'D'] }

我有另一个包含相同数据但没有在Unicode中的字典

  Dict= { 'Apple': ['A' , 'B'] ,'orange': ['C' , 'D'] }

我试图比较两个字典,但它说两个字典都不一样。我假设它是因为Unicode

有什么方法可以通过从My_dict中删除Unicode或转换' Dict'来比较两个字典。到Unicode?

我获得Unicode的原因是因为我正在使用S表达式解析器。下面链接到解析器模块以供参考。     http://sexpdata.readthedocs.org/en/latest/

4 个答案:

答案 0 :(得分:0)

import json
some_other_dict = json.loads(json.dumps(My_Dict))
print(some_other_dict)

尝试这个。它将删除unicode。

答案 1 :(得分:0)

要从字典中删除Unicode,请尝试:

import json, ast
My_Dict= { u'Apple': [u'A' , u'B'] ,u'orange': [u'C' , u'D'] }
print(ast.literal_eval(json.dumps(My_Dict)))

答案 2 :(得分:0)

也许对两者都执行json.dumps。

json.dumps({ u'Apple': [u'A' , u'B'] ,u'orange': [u'C' , u'D'] })
Output: `'{"orange": ["C", "D"], "Apple": ["A", "B"]}'

json.dumps({ 'Apple': ['A' , 'B'] ,'orange': ['C' , 'D'] })
Output: `'{"orange": ["C", "D"], "Apple": ["A", "B"]}'`

答案 3 :(得分:-1)

要删除unicode,您必须从unicode转换键和值。

检查以下代码

My_Dict= { u'Apple': [u'A' , u'B'] ,u'orange': [u'A' , u'B'] }
Dict= { 'Apple': ['A' , 'B'] ,'orange': ['C' , 'D'] }

My_Dicts={}
for i, v in My_Dict.items():
  ky= i.encode('ascii','ignore')
  if type(v)is list:My_Dicts[ky]=[ item.encode('ascii') for item in v ]
  else: My_Dicts[ky] =v.encode('ascii','ignore')
My_Dict=My_Dicts

print My_Dict
print Dict

输出

{'orange': ['C', 'D'], 'Apple': ['A', 'B']}
{'orange': ['C', 'D'], 'Apple': ['A', 'B']}