我正在从通过以太网连接的外部设备获取输入,它正在传递多个字符串类型的值,例如值 = '(2,2)\n'。我想将这些值分配给列表或元组变量,例如最终值 = (2,2)。 我使用的代码如下:
import socket
sock = socket.socket()
value =sock.recv(buffersize=2048)
formatted_value = eval(value)
我读到我现在使用的eval 函数来获取列表并不是一种非常安全的方法,因为外部设备可能会传递一个危险的脚本。所以,我想知道是否有任何替代方法,类似于函数 int(),可用于从字符串中获取整数。
请您参考如下方法:
使用ast用于更安全评估的模块 literal_eval 方法
import ast
formatted_value = ast.literal_eval(value)
