Python,需将长整型转换为整数
我正在尝试通过REST接口向一个网络服务插入一个Unix时间戳。当我把字典转换时,得到的值是:1392249600000L。我需要这个值是一个整数。
所以我试着用 int(1392249600000L)
,结果还是得到 1392249600000L
,依然是一个长整型的值。
我需要这样做的原因是,因为这个JSON网络服务只接受带有毫秒的时间戳,但当我传递带有'L'的JSON值时,就会出现无效的JSON原始值 1392249600000L
的错误。
有人能帮我解决这个问题吗?这看起来应该很简单,但让我感到很烦恼!
1 个回答
3
在发送JSON数据时,不要使用Python的表示方式。应该使用json
模块来表示整数。
>>> import json
>>> json.dumps(1392249600000L)
'1392249600000'
无论如何,L
只是字符串表示的一部分,用来让调试更简单,明确你有一个long
类型,而不是int
类型。总之,不要在网络通信中使用Python的字符串表示。
举个例子,如果你有一个Python值的列表,那么这个列表的str()
表示方式也会使用repr()
来表示列表中的内容,这样就会在long
整数后面加上L
。但是,json.dumps()
可以正确处理这种情况,同时也能正确处理其他类型(比如把Python的None
转换为JSON的null
,把Python的True
转换为JSON的true
,等等):
>>> json.dumps([1392249600000L, True, None])
'[1392249600000, true, null]'