我知道这似乎是一个愚蠢的问题,但无论如何。
我正在尝试将字典的字符串表示转换回字典。
我的工作流程如下:
d = {1:2}
s = str(d)
当我执行以下操作时:
dict(s)
我得到了以下错误信息:
ValueError: 字典更新序列的第0个元素长度为1,需要2个
当我执行以下操作时:
json.loads(s)
我得到了这个错误信息:
ValueError: Expecting property name: line 1 column 1 (char 1)
如何将它转换回一个字典?
更新:
我应该提到,实际数据如下:
{'cell_num': u'', 'home_num': u'16047207276', 'registration_country': u'US', 'registration_ip': u'71.102.221.29', 'last_updated': datetime.datetime(2010, 9, 27, 15, 41, 59), 'address': {'country': u'US', 'state': u'CA', 'zip': u'', 'city': u'Santa Barbara', 'street': u'', 'confirmed': False, 'created': datetime.datetime(2010, 6, 24, 10, 23), 'updated': datetime.datetime(2010, 6, 24, 10, 23)}, 'old_home_num': u'16047207276', 'old_cell_num': u''}
在这种情况下,使用json.loads和ast.literal_eval()不合适。所以我进一步尝试使用标准的Python pickle库对其进行反序列化。
import pickle pickle.loads(data)
但是我得到了以下错误:
KeyError: '{'
obj.__str__()
- 而是使用str(obj)
。但无论如何,这也不是你想要的 :) - ThiefMasterjson
模块代替... - Wooble