проблемы с передачей данных из postgres в json

#json #postgresql #regexp-replace

Вопрос:

Я попытался экспортировать в формате .json огромную таблицу, но получил ошибки, связанные с неожиданными символами, поэтому я запускаю все поля, чтобы избежать каких-либо конфликтов:

 regexp_replace(field_name,'[^a-zA-Z0-9 -_()]','','g')
 

Но в результате получается, что все кажется пустым regexp_replace N в качестве значения.

Я думал, что это решит проблему. Есть ли в любом случае способы избежать ошибок неожиданных символов или NaN, выполнив какой-либо запрос в таблице? Или какой-то процесс для правильного преобразования .json или для передачи данных из postgres в .json.

Это исходные ошибки, из-за которых после выполнения предыдущей команды не появилось regexp_replace N для всех полей:

  • Нашел неожиданного персонажа:

centroid.geojson:13811:

Нашел неожиданный характер В JSON object {"type":"Feature","geometry":{"type":"Point","coordinates":[-0.175797882,51.56044564]},"properties":{"field1":"atribute1","field2":"atribute2","field3":"atribute3","field4":"atribute4","field5":"","atribute5":"","field6":"","field7":"","field8":"","field9":"","date":"27-02-1987","field10":"atribute10","field11":"","atribute11":"","field13":"","field14":"atribute14","field16...

  • Найдено неправильное написание NaN: похоже на другое, но при работе с мультиполигонами,

путь/к/файлу.json:398: Найдено неправильное написание NaN В

 JSON object {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-0.018498801,51.50229262],[-0.018494037,51.502309446],[-0.018509668,51.502311149],[-0.01851684,51.5023119],[-0.018519242,51.502303037],[-0.01864384,51.502317193],[-0.018640275,51.502329632],[-0.018563854,51.502613229],[-0.018558638,51.502630497],[-0.01842617,51.502615039],[-0.018433776,51.502589179],[-0.018286221,51.502572747],[-0.018048472,51.502546247],[-0.01764496,51.502501208],[-0.017683038,51.502367501],[-0.01768609,51...
 
  • Найдено неправильное написание Бесконечности: равно предыдущему

Комментарии:

1. И исходное сообщение об ошибке будет таким?

2. @AdrianKlaver Я отредактировал вопрос, добавив точные ошибки.

3. Нет, это ваше редактирование сообщения об ошибке, нам нужно увидеть фактическое сообщение об ошибке, возвращенное Postgres. Также пример оскорбительных строк из файла JSON.

4. @AdrianKlaver спасибо, я обновил ответ, надеюсь, это поможет, я не добавил его в начале, потому что не думал, что они важны.

Ответ №1:

После выполнения запроса:

 UPDATE table SET field = replace(field, '''', ''); 
 

а затем для NaN и для NULL:

 UPDATE table SET field= '' WHERE field= 'NaN';
 

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