Python 在字典中存储带前导零的数字

Python storing number with leading zeros in Dictionary

我有一本名为 table 的字典。我想将此号码分配给下面的 dic 键。它一直给我一个错误,说 "invalid token"。我试过将它转换为字符串、整数和浮点数,但无济于事

table['Fac_ID'] = 00000038058

您不情愿地调用了 Python 2.x 八进制模式但是:

  • 你不能,因为里面有一个 8(运气不好还是运气好?)
  • 在 python 3 中(也适用于 python 2.7),八进制前缀不再是 0 而是 0o:因此出现无效标记。

最好在不带前导零的情况下存储您的值,并在打印时添加前导零

print("%012d"%table['Fac_ID'])

不要将其转换为字符串,首先将其用作字符串:

>>> table['Fac_ID'] = str(00000038058)
  File "<stdin>", line 1
    table['Fac_ID'] = str(00000038058)
                                    ^
SyntaxError: invalid token
>>> table['Fac_ID'] = '00000038058'
>>> print table['Fac_ID']
00000038058

str 与任何函数一样,在传入参数之前先将其计算为一个值,因此如果在 str 之前存在无效标记,使用 str 不会改变它。您需要使用有效的令牌,因此只需对字符串进行硬编码。

用引号将数字引起来。

table['Fac_ID'] = "00000038058"

您可以使用zfill来填充零。假设您要最多填充 11 个零:

>>> str(38058).zfill(11)
'00000038058'

这显然创建了一个零填充字符串,用作基于整数的键。