Python,需将长整型转换为整数

1 投票
1 回答
1459 浏览
提问于 2025-04-18 02:11

我正在尝试通过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]'

撰写回答