Страница 2 из 2

Re: Ошибка при запуске

Добавлено: 26 ноя 2014, 15:59
Sergey Astakhov
vitte писал(а):Добрый день. При запуске выдает следующую ошибку. Подскажите в чем дело.

ValueError: invalid literal for int() with base 10: '**********'
DBF-ник кривой. Там в одной из строк в числовом поле записаны звёздочки ('**********', обычно такие пишутся при переполнениях), а скрипт на такое коварство не рассчитан. Возможные варианты решения:
  • Увеличьте размерность поля при экспорте (там, где DBF-ка формируется). Самый правильный вариант.
  • Подправить DBF-ку (обнулить эти поля со звёздочками)
  • Подправить скрипт/библиотеку dbfpy, чтобы они корректно обрабатывали такие значения.

Re: Изменение кодировки DBF файла

Добавлено: 27 ноя 2014, 07:49
vitte
dbf формируется ogr2ogr, повлиять на него не смогу.
Звездочек в числовых полях dbf не обнаружил.
Еще есть мнение что не все питоновские библиотеки встали.

Re: Изменение кодировки DBF файла

Добавлено: 27 ноя 2014, 13:37
Sergey Astakhov
vitte писал(а):dbf формируется ogr2ogr, повлиять на него не смогу.
Звездочек в числовых полях dbf не обнаружил.
Еще есть мнение что не все питоновские библиотеки встали.
Тогда выложите куда-нить пример dbf-ки, на которой ломается.

Re: Изменение кодировки DBF файла

Добавлено: 28 ноя 2014, 16:06
psyhosis
Добре!
а сама база то где?
а сам текст ошибки ничего не подсказывает? Система ждет ineger, а ей суют строку char-ов

Re: Изменение кодировки DBF файла

Добавлено: 28 ноя 2014, 16:10
psyhosis
и еще, только dbf, на другой, более свежий и более открытый и продвинутый формат никак не перелезть?

Re: Изменение кодировки DBF файла

Добавлено: 28 ноя 2014, 16:19
psyhosis
Под виндой на питоне? Винда не под вайном ли запущна? :)
DBF командир может попроще будет?
Какой исходный формат то? И какой на выходе?

Re: Изменение кодировки DBF файла

Добавлено: 29 ноя 2014, 03:28
Sergey Astakhov
vitte писал(а):Звездочек в числовых полях dbf не обнаружил.
Посмотрел на ваш файл, присланный в личку. Ну собственно как я и говорил - у вас там все строки в сплошных звёздочках (например значение поля id_code). Посмотрите содержимое в любом текстовом viewer-е (например в FAR). Типовые просмотрщики DBF обычно молча проглатывают эти значения (подставляют 0), а вот питоновская библиотека более привередлива.

Размеры полей должны определятся в источнике. Вы из какого типа данных конвертите?
Если вы shapefile генерите через OGR, то вроде как последние версии должны уметь автоматом подстраивать размеры полей:
Starting with GDAL/OGR 1.10, the driver knows to auto-extend string and integer fields (up to the 255 bytes limit imposed by the DBF format) to dynamically accomodate for the length of the data to be inserted.
...
Resizing columns of a DBF file to their optimal size (OGR >= 1.10.0) :
% ogrinfo file1.dbf -sql "RESIZE file1"
http://www.gdal.org/drv_shapefile.html

Re: Изменение кодировки DBF файла

Добавлено: 30 ноя 2014, 08:03
vitte
Шейпы генерировал ogr2ogr (1.11.0 версии) из данных MS SQL. Смотрел стандартными просмотрщиками, поэтому не видел звездочек.
Вопрос снят.
Спасибо