我正在使用python,当我在字符串上执行eval以获取字典时,它向我显示错误“SyntaxError:invalid syntax”字符串通过套接字连接接收并且它包含字典。我需要找回原始字典
确切错误如下
File "<string>", line 1
##here goes my long string received over socket
^
SyntaxError: invalid syntax
我不知道这是怎么回事。我知道我可以使用pickle或json发送数据,但这不是目前的req
首先,除非你有一个非常具体的用例需要它,否则永远不要使用eval
:它会带来安全风险。相反,使用ast.literal_eval
。
其次,我无法重现您的错误:
import ast
mystr = "{'a': 1, 'b': 2, 'c': 3, 'd': 4}"
ast.literal_eval(mystr) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
type(ast.literal_eval(mystr)) # dict