【发布时间】:2016-11-21 12:07:10
【问题描述】:
我从通过以太网连接的外部设备获取输入,它正在传递几个字符串类型的值,例如value = '(2,2)\n'。我想将这些值分配给列表或元组变量,例如final_value = (2,2)。
我使用的代码如下:
import socket
sock = socket.socket()
value =sock.recv(buffersize=2048)
formatted_value = eval(value)
我读到我现在用来获取列表的 eval 函数不是一种非常安全的方法,因为外部设备可能会传递一个危险的脚本。所以,我想知道有没有替代方法,类似于函数int(),可以用来从字符串中获取整数。
【问题讨论】:
-
字符串列表是否总是以 (x,x) 格式返回?
-
(2, 2)是一个元组,你想要一个元组还是一个列表? -
@StevenSummers 该字符串是帖子中的形式。实际上,最终值可以是元组或列表。我没有意识到我在发布一个元组,抱歉。
-
@pshep123 字符串列表始终具有 '(x1,x2)\n' 格式,即 x1 和 x2 整数