将传入的参数转换为字符串
我刚开始学Python,可能我问的问题不太对,但我想知道怎么把传入的参数转换成字符串。
这是我正在尝试的:
#!/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
3 个回答
0
看起来你想要一个整数。每个传入的 arg
本身已经是一个字符串,所以你没有必要像现在这样进行转换。试试用 int(arg)
来处理它。
1
在sys.argv里,你的参数应该已经是字符串了。你为什么觉得需要把它转换成字符串呢?
你不觉得应该把错误信息发出来吗?
不过不管怎样,你的做法其实是错的。argv的第一个参数是脚本的名字。你可能想要的是
for arg in sys.argv[1:]:
id = str(arg)
print client.service.setId(id)
另外,你应该在循环里加一个打印语句,这样就能清楚地看到传给setId()的内容是什么了。
9
从 sys.argv
里得到的值已经是字符串了。我觉得你遇到的问题是你传入了 sys.argv[0]
,这个是脚本的名字。试试这样做:
for arg in sys.argv[1:]:
print client.service.setId(arg)