加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何将格式错误的字符串转换为字典?

发布时间:2020-12-20 11:24:43 所属栏目:Python 来源:网络整理
导读:我有一个字符串s(注意a和b没有用引号括起来,所以它不能直接被评估为dict): s = '{a:1,b:2}' 我想将此变量转换为这样的dict: {'a':1,'b':2} 我怎样才能做到这一点? 解决方法 因为你的字符串格式错误,因为json和Python都是dict所以你们都不能使用json.loads
我有一个字符串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,") 
     for k,v in [e.split(":")]}
{'a': 1,'b': 2}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读