将字符串转换为dict时出现python eval错误

问题描述 投票:-3回答:1

我正在使用python,当我在字符串上执行eval以获取字典时,它向我显示错误“SyntaxError:invalid syntax”字符串通过套接字连接接收并且它包含字典。我需要找回原始字典

确切错误如下

File "<string>", line 1 
##here goes my long string received over socket
                                   ^
SyntaxError: invalid syntax

我不知道这是怎么回事。我知道我可以使用pickle或json发送数据,但这不是目前的req

python string python-3.x dictionary eval
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.