将传入的参数转换为字符串

0 投票
3 回答
6101 浏览
提问于 2025-04-16 09:24

我刚开始学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)

撰写回答