4

是否有可能允许long intPython simplexmlrpc 服务器的 xmlrpc 扩展(数据类型)?

客户端使用 Apache xmlrpc,它允许 8 字节整数

基本上,我使用带有这个函数的示例代码来测试它:

def FcnRLong():
    x=8000000000L
    return x

导致此错误:

Java exception occurred:
org.apache.xmlrpc.XmlRpcException: <type 'exceptions.OverflowError'>:long int exceeds XML-RPC limits

有任何想法吗?是否有任何支持 Python 2.7 的 xmlrpc 服务器long int

4

1 回答 1

10

以下代码段中的第二行将长整数的编组更改为发出<i8>而不是<int>. 是的,它不太漂亮,但应该可以解决问题。

>>> import xmlrpclib
>>> xmlrpclib.Marshaller.dispatch[type(0L)] = lambda _, v, w: w("<value><i8>%d</i8></value>" % v)
>>> xmlrpclib.dumps((2**63-1,))
'<params>\n<param>\n<value><i8>9223372036854775807</i8></value></param>\n</params>\n'
于 2013-09-17T21:44:36.533 回答