如何解析字典字符串?

Lal*_*ngh 3 python dictionary python-2.7

我试图将字符串转换为具有dict函数的字典,就像这样

import json
p = "{'id':'12589456'}"
d = dict(p)
print d['id']  
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误

ValueError: dictionary update sequence element #0 has length 1; 2 is required
Run Code Online (Sandbox Code Playgroud)

为什么会失败?我怎样才能解决这个问题?

the*_*eye 8

你拥有的是一个字符串,但dict函数只能迭代元组(键值对)来构造一个字典.请参阅dict文档中给出的示例.

在这种特殊情况下,您可以使用ast.literal_eval将字符串转换为相应的dict对象,如下所示

>>> p = "{'id':'12589456'}"
>>> from ast import literal_eval
>>> d = literal_eval(p)
>>> d['id']
'12589456'
Run Code Online (Sandbox Code Playgroud)