如何在使用Python通过TCP发送后将字符串转换为浮点数?

如何在使用Python通过TCP发送后将字符串转换为浮点数?,python,string,sockets,tcp,Python,String,Sockets,Tcp,嗨,我正在尝试使用带有Python的TCP套接字从我的Raspberry Pi 3向PC发送连续的温度数据。我不是无法发送浮点值,而是以字符串格式发送连续的浮点值流,并希望将所有这些转换为浮点类型 我遇到如下错误: "ValueError: could not convert string to float '25.69'. 这是我的服务器代码(在raspberry pi上运行),我只包含了特定部分: def dataTransfer(conn): # A big loop that

嗨,我正在尝试使用带有Python的TCP套接字从我的Raspberry Pi 3向PC发送连续的温度数据。我不是无法发送浮点值,而是以字符串格式发送连续的浮点值流,并希望将所有这些转换为浮点类型

我遇到如下错误:

"ValueError: could not convert string to float '25.69'.
这是我的服务器代码(在raspberry pi上运行),我只包含了特定部分:

def dataTransfer(conn):
    # A big loop that sends/receives data until told not to.
    while True:
    reply = GET_OBJ_TEMP()
    reply = str(reply)
    #conn.sendall(str.encode(reply)) # don't have to encode/decode, I think it's only for Python 3
    conn.sendall(reply)
    print("Data has been sent!")
    #conn.close()

s = setupServer()
conn = setupConnection()
dataTransfer(conn)
以下是客户端代码(在PC上):


有人能帮我把这些值作为一个浮点数,或者帮我直接发送浮点数吗?我需要它们,这样我就可以用温度作为阈值。

只需删除这个
reply2=(repr(reply))
,它会给你的数据加上引号就行了,谢谢!!虽然现在,我试图让它在连续的温度读数流中工作,使用一个while循环,它不喜欢它,它得到一个非常大的浮点数。。我该如何解决这个问题?ValueError:float()的文本无效:27.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8527.8 TCP是一个面向流的协议,您可以得到一个,服务器上的每个读操作中都有几个甚至部分浮点。有些选项是,使用UDP并为每个数据报发送一个浮点值(这很简单,但在带宽使用方面并不充分),或者使用一些特殊字符(如新行)分隔浮点值,并在服务器上使用该字符分割不同的值。谢谢,我不确定如何做到这一点,通过将s.recv接收的字节数从1024个减少到50个,我设法找到了解决办法。。然后使用reply2=reply2[:5]将字符串分为4个字符,然后我可以将它们全部转换为浮点数。
import socket

host = '10.0.0.94'
port = 5560

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))

#while True:
#s.send(str.encode(command))
reply = s.recv(1024)
#print(reply.decode('utf-8'))
#reply2 = reply.decode('utf-8')
reply2 = (repr(reply))
reply2 = float(reply2)
print reply2
print type(reply2)

s.close()