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'
这显然创建了一个零填充字符串,用作基于整数的键。
我有一本名为 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'
这显然创建了一个零填充字符串,用作基于整数的键。