Python хранит номер с ведущими нулями в словаре
У меня есть словарь под названием таблица. Я хочу присвоить этот номер приведенной ниже клавише. он продолжает давать мне ошибку, говоря "неверный токен". Я попытался преобразовать его строки, INT и Float, но безрезультатно
table['Fac_ID'] = 00000038058
4 ответа
Не конвертируйте его в строку, в первую очередь используйте его как строку:
>>> 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 не изменит этого. Вам нужно использовать действительный токен, поэтому просто закодируйте строку.
Вы невольно запускаете восьмеричный режим Python 2.x, но:
- Вы не можете, потому что в нем 8 (неудача или удача?)
- в Python 3 (также работает в Python 2.7) восьмеричный префикс больше не
0
но0o
: неверный токен возникает из-за этого.
Было бы лучше хранить ваши значения без начальных нулей и добавлять начальные нули при их печати
print("%012d"%table['Fac_ID'])
Ты можешь использовать zfill
дополнить нулями. Предполагая, что вы хотите дополнить до 11 нулей:
>>> str(38058).zfill(11)
'00000038058'
Это, очевидно, создает строку с дополнением нулями для использования в качестве ключа на основе целого числа.