Python的新手,也许我没有说明问题,但是如何在python中将传递的arg转换为字符串?
以下是我正在尝试的内容:
#!/usr/bin/python
# Python Wrapper to Call XMLRPC service
import xmlrpclib
import sys
# Set the Server
servAddr = "http://127.0.0.1/xmlrpc.server.php"
# Start the Client
client = xmlrpclib.ServerProxy(servAddr)
for arg in sys.argv:
id = str(arg)
print client.service.setId(id) # Throws long error
# print client.service.setId('123') # Hard coded works
#print arg # prints the id passed
答案 0 :(得分:9)
sys.argv
的值已经是字符串。我认为问题是你传递的是sys.argv [0],这是脚本名称。试试这个:
for arg in sys.argv[1:]:
print client.service.setId(arg)
答案 1 :(得分:1)
你在sys.argv中的args应该已经是字符串了。是什么让你认为你需要把它投射到一个字符串?
你认为你不应该发布错误吗?
但无论如何,无论如何,你做错了。 argv的第一个参数是脚本的名称。你可能想要
for arg in sys.argv[1:]:
id = str(arg)
print client.service.setId(id)
此外,您应该在循环中放置一个print语句,以确切了解传递给setId()的内容。
答案 2 :(得分:0)
看起来好像你想要一个整数。传入的每个arg
已经一个字符串,因此没有理由按照您的方式进行投射。请改为int(arg)
。