Python namedtuple: имена типов и имена полей должны быть действительными идентификаторами: '480w_still' - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь использовать namedtuple с объектом dict для перевода dict в пользовательский класс, но у меня возникли проблемы. При использовании

self.images = namedtuple('Images', json["images"].keys())(*json["images"].values())

это исключение возникает:

ValueError: Type names and field names must be valid identifiers: '480w_still'

Я видел людей, имеющих такие ошибки, но не нашел решения или документации по 480w_still. Может ли кто-нибудь помочь мне, что это значит и как я могу решить это? Спасибо.

Полный JSON:

https://pastebin.com/PmSyBSkb

JSON с только частью изображений:

https://pastebin.com/q3rWVmXa

Спасибо.

1 Ответ

0 голосов
/ 02 ноября 2018

Из документации по названному кортежу:

Любой действительный идентификатор Python может использоваться для имени поля, кроме имен, начинающихся с подчеркивания. Допустимые идентификаторы состоят из буквы, цифры и подчеркивания , но не начинаются с цифры или подчеркивание и не может быть ключевым словом, таким как class, for, return, global, пройти, распечатать или поднять.

https://docs.python.org/2/library/collections.html#collections.namedtuple

...