Python - 发送参数作为结构
问题描述:
我正在使用一个API,需要我给出3个参数。Python - 发送参数作为结构
string sessionKey
int serverId
struct date details
dateTime.iso8601 startDate - Optional, unless endDate is provided.
dateTime.iso8601 endDate - Optional.
我不知道如何在这种情况下定义一个结构。我以这种方式调用API。
>>> server.system.provisioning.snapshot.listSnapshots(sessionKey,1000078204, {datetime.now() , datetime.now()})
这样的IM定义我struct
的语法:
{datetime.now() , datetime.now()}
这给了我一个错误:
Traceback (most recent call last):
File "/usr/lib64/python3.4/xmlrpc/client.py", line 512, in __dump
f = self.dispatch[type(value)]
KeyError: <class 'set'>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.4/xmlrpc/client.py", line 1098, in __call__
return self.__send(self.__name, args)
File "/usr/lib64/python3.4/xmlrpc/client.py", line 1431, in __request
allow_none=self.__allow_none).encode(self.__encoding)
File "/usr/lib64/python3.4/xmlrpc/client.py", line 951, in dumps
data = m.dumps(params)
File "/usr/lib64/python3.4/xmlrpc/client.py", line 504, in dumps
dump(v, write)
File "/usr/lib64/python3.4/xmlrpc/client.py", line 516, in __dump
raise TypeError("cannot marshal %s objects" % type(value))
TypeError: cannot marshal <class 'set'> objects
难道我定义struct
错了吗?
答
在XML-RPC(您的错误追溯显示您正在使用)中,“结构”是Python称为“dict(ionary)”的东西,但您试图改用set
。你需要使用的API文档(即startDate
和endDate
)中给出的键名来创建一个dict
,即:
>>> server.system.provisioning.snapshot.listSnapshots(sessionKey,1000078204, {"startDate": datetime.now(), "endDate": datetime.now()})
这个问题没有什么关系[标签:C] –