Python xmlrpclib在发送时将datetime对象更改为DateTime实例

使用
Python 2.6.x使用xmlrpclib在客户端和服务器之间交换的消息在服务器端创建了一种“实例”,而不是类型“datetime”.

在客户端我创建了一个新的

updateTime = datetime(year, month, day, hour, minute, second)
print type(updateTime)
print updateTime

结果是

<type 'datetime.datetime'>
2015-10-07 10:21:52

在发送时,字典在客户端看起来像这样:

'updateTime': datetime.datetime(2015, 10, 7, 10, 21, 52)

但是服务器端的传入字典看起来像这样:

'updateTime': <DateTime '20151007T10:21:52' at 7f4dbf4ceb90>

打印类型及其字符串表示如下所示:

<type 'instance'>
20151007T10:21:52

我们正在使用xmlrpclib.ServerProxy,但将use_datetime更改为True或False完全没有任何区别.

xmlrpclib.ServerProxy('https://'+rpc_server_addr, allow_none=True, use_datetime=True)

为什么会这样?我期待接收方的tpye’datetime.datetime’.

最佳答案 您必须将xmlrpc.datetime格式转换为python datetime.datetime对象.

我发现转换对象的最简单方法是:

import datetime

my_datetime = datetime.datetime.strptime(str(xmlrpc.datetime), '%Y%m%dT%H:%M:%S')
点赞