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

时间:2016-08-11 19:12:15

标签: python dictionary leading-zero

我有一个名为table的字典。我想将此号码分配给下面的dic键。它一直给我一个错误说"无效的令牌"。我试过将它转换为string,int和float但是无济于事

table['Fac_ID'] = 00000038058

4 个答案:

答案 0 :(得分:2)

你正在轻率地调用Python 2.x八进制模式,但是:

  • 你不能,因为它中有8个(坏或好运?)
  • 在python 3中(也适用于python 2.7),八进制前缀不再是0而是0o:因此而出现无效令牌。

最好存储没有前导零的值,并在打印时添加前导零

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

答案 1 :(得分:1)

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

>>> 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不会改变它。您需要使用有效的令牌,因此只需对该字符串进行硬编码。

答案 2 :(得分:0)

用引号括起数字。

table ['Fac_ID'] =“00000038058”

答案 3 :(得分:0)

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

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

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