在Python中使用long()时发生ValueError

在Python中使用long()时发生ValueError,python,python-2.7,long-integer,Python,Python 2.7,Long Integer,所以当我跑步时: value = long("00000000000000020000000000000002", 16) 我得到: ValueError: Value out of range: 36893488147419103234 我想这是因为long不能接受这么大的十六进制数,但我不确定 实际上,我正在迭代一个包含大量非常大的十六进制数的文件,但这只是我试图解析的其中一个十六进制数的示例 我尝试使用lstrip()删除一些0,但对错误没有影响 我做错了什么?错误是由我试图赋值给的变

所以当我跑步时:

value = long("00000000000000020000000000000002", 16)
我得到:

ValueError: Value out of range: 36893488147419103234
我想这是因为long不能接受这么大的十六进制数,但我不确定

实际上,我正在迭代一个包含大量非常大的十六进制数的文件,但这只是我试图解析的其中一个十六进制数的示例

我尝试使用
lstrip()
删除一些0,但对错误没有影响


我做错了什么?

错误是由我试图赋值给的变量引起的,而不是实际的long()函数。

无法在2.7.13上用更长的数字进行复制。仅供参考,在Python 3
value=int(“000000000000000000000 200000000000000002”,16)
运行良好(
int
取代了Python 2的
long
)。我也无法在python2.7.12上复制。您具体使用的是什么版本?您确定在处理过程中的某一步没有发出
ValueError
。@rikg09尝试一下这个方法也无法在python2.7.5上复制。不正确。对名称进行简单的赋值不会引发值错误。我简化了在我提问之前,我对代码进行了修改。实际上,我试图将数字分配给protobuff字段(不确定它的名称是否正确),它不是用来获取这样一个数字的。当我切换到只将其分配给python变量时,没有发生任何错误。最后我意识到我甚至不需要将数字存储在那里,所以我最终不在乎……对于所有的混淆,我感到抱歉