我正在使用python,当我对字符串进行eval以获取字典时,它会向我显示错误" SyntaxError:invalid syntax" 字符串是通过套接字连接接收的,它包含一个字典。 我需要找回原来的字典
确切错误低于
File "<string>", line 1
##here goes my long string received over socket
^
SyntaxError: invalid syntax
我不知道这是怎么回事。 我知道我可以使用pickle或json发送数据,但这不是目前的要求
答案 0 :(得分:1)
首先,从不使用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