我有一个字符串s(注意a和b没有用引号括起来,所以它不能直接被评估为dict):
s = '{a:1,b:2}'
我想将此变量转换为这样的dict:
{'a':1,'b':2}
我怎样才能做到这一点?
最佳答案 因为你的字符串格式错误,因为json和Python都是dict所以你们都不能使用json.loads而不是ast.literal_eval来直接转换数据.
在这种特殊情况下,您必须通过了解输入数据手动将其转换为Python字典
>>> foo = '{a:1,b:2}'
>>> dict(e.split(":") for e in foo.translate(None,"{}").split(","))
{'a': '1', 'b': '2'}
由Tim更新,我的短视我错过了值应该是整数的事实,这是一个替代实现
>>> {k: int(v) for e in foo.translate(None,"{}").split(",")
for k, v in [e.split(":")]}
{'a': 1, 'b': 2}