Как создать значение в именованном кортеже? - PullRequest
0 голосов
/ 25 сентября 2019

Я извлекаю данные из NHTSA API , используя формат JSON.Затем я создаю именованный кортеж из этих данных и нескольких других источников и использую его как запись для вставки в MySQL базу данных.

API NHTSA использует '' для обозначения нулевого значения, которое не является допустимым значением для этого конкретного столбца в базе данных.Столбец допускает только тип данных float.

При создании именованного кортежа есть ли способ заменить None, если возвращается определенное значение?Т.е., если вызов API возвращает '', используйте вместо него None?

Возвращена ошибка

Ошибка вставки объекта в таблицу MySQL Ошибка при выполнении оператора:Данные усекаются для столбца 'weight' в строке 1

1 Ответ

0 голосов
/ 25 сентября 2019

Кортежи являются неизменяемыми, поэтому вам необходимо создать новый кортеж

Вот пример :


old = (1,2,'ABC','','','','text')

new = tuple(None if x == '' else x for x in old)

Вывод :
Теперь new содержит:

(1, 2, 'ABC', None, None, None, 'text')

См. эту ветку для получения дополнительной информации

...