我尝试使用REST将unix时间戳插入到Web服务中。当我转换字典时,我得到的值:1392249600000L我需要这个值是一个整数。
所以我尝试int(1392249600000L)
并获得1392249600000L
,仍然是一个很长的值。
我需要这个的原因是因为JSON webservice只接受timestamsp,其中包含毫秒,但是当我使用' L'传递JSON值时。在其中我得到了一个无效的JSON Primative值1392249600000L
错误。
有人可以帮我解决这个问题吗?它看起来应该很容易,但它让我发疯了!
答案 0 :(得分:3)
发送JSON数据时,不应使用Python表示。使用json
module来代表整数:
>>> import json
>>> json.dumps(1392249600000L)
'1392249600000'
在任何情况下,L
只是字符串表示的一部分,以便于调试,明确表示您有long
,而不是int
值。在任何情况下,都不要将Python字符串表示用于网络通信。
例如,如果您有一个Python值的列表,该列表的str()
表示也将使用内容的repr()
表示,导致L
整数的long
后缀。但json.dumps()
也正确处理此类情况,和也正确处理其他类型(如Python None
到JSON null
,Python True
到JSON { {1}}等等):
true