我是Python的新手,已经用Google搜索了这个问题并且我没有让它工作。 我正在尝试将一个从Roborealm写入Python的值,除了我没有把它写入值之外,一切都有效,因为它不支持str的问题。
这是我自己的代码,我的其余代码来自Roborealm:
rr = RR_API()
width = 0
height = 0
rr.Connect("localhost")
import math
import socket
Clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Clientsocket.bind(("localhost", 4040))
serversocket = Clientsocket
#Circles
Circles = str(rr.GetVariable("CirclesCount"), "utf-8")
if Circles >=1:
print ("Circles = "+rr.GetVariable("CIRCLES_COUNT"))
错误代码:
Traceback (most recent call last):
File "C:\Users\RU21\Desktop\Röda puckar\Förbindelse med RR.py", line 281, in <module>
Circles = str(rr.GetVariable("CirclesCount"), "utf-8")
File "C:\Users\RU21\Desktop\Röda puckar\Förbindelse med RR.py", line 117, in GetVariable
self.sock.send("<request><get_variable>"+str(name) +"</get_variable></request>")
TypeError: 'str' does not support the buffer interface
我是Python的新手,我用Google搜索了ALOT,这是我最后一次机会,所以请帮助我。
答案 0 :(得分:2)
问题出在C:\Users\RU21\Desktop\Röda puckar\Förbindelse med RR.py
,而不是(只)在您的代码中。
看看追溯,似乎Roborealm不支持Python 3.x.您应该安装Python 2.7并尝试使用agin。
答案 1 :(得分:0)
rr.GetVariable("CirclesCount")
正在返回一个str对象。如果你有编码的字节,你只需要指定"utf-8"
编码参数,但是因为你得到一个解码的str,所以你需要做的就是:
Circles = str(rr.GetVariable("CirclesCount"))
或只是(这是更好的):
Circles = rr.GetVariable("CirclesCount")