python字符串转字典
【摘要】 方法一最常见的一种,使用json进行转换import jsons = {"name": "张三"}print(json.loads(s))------{'name': '张三'}但是这种方式有可能会出现问题,例如单引号的情况s = "{'name': '张三'}"print(json.loads(s))------Traceback (most recent call last): Fi...
方法一
-
最常见的一种,使用json进行转换
import json s = {"name": "张三"} print(json.loads(s)) ------ {'name': '张三'}
-
但是这种方式有可能会出现问题,例如单引号的情况
s = "{'name': '张三'}" print(json.loads(s)) ------ Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 348, in loads return _default_decoder.decode(s) File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
方法二
-
使用eval(不推荐使用,有可能会被人恶意利用执行一些危险的代码)
s = "{'name': '张三'}" print(eval(s)) ------ {'name': '张三'}
方法三
-
使用ast.literal_eval(推荐使用,只会执行合法的Python类型)
import ast s = "{'name': '张三'}" print(ast.literal_eval(s)) ------ {'name': '张三'}
参考链接:python字符串转字典
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)