您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python将字符串对象转换为字典

Python将字符串对象转换为字典

不要使用eval。如果您确定该字符串将始终包含有效的Pythondict,请使用ast.literal_eval。这工作很像eval,但如果表达式是有效的,只计算dictlist等,如果不是抛出一个例外。这比尝试在运行时评估可能包含任意代码的字符串安全得多。

文档

安全地评估表达式节点或包含Python表达式的字符串。提供的字符串或节点只能由以下Python文字结构组成:字符串,数字,元组,列表,字典,布尔值和无。

这可用于安全地评估包含来自不受信任来源的Python表达式的字符串,而无需自己解析值。

代码示例:

>>> import ast
>>> ast.literal_eval("1+1")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/ast.py", line 68, in literal_eval
    return _convert(node_or_string)
  File "/usr/lib/python2.6/ast.py", line 67, in _convert
    raise ValueError('malformed string')
ValueError: malformed string
>>> ast.literal_eval("\"1+1\"")
'1+1'
>>> ast.literal_eval("{'a': 2, 'b': 3, 3:'xyz'}")
{'a': 2, 3: 'xyz', 'b': 3}
python 2022/1/1 18:38:52 有276人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶