CSV -> JSON -> PostgreSQL «Недействительный токен»

У меня есть файл CSV, содержащий 1 столбец («json_doc») со многими строками данных JSON. Я хочу собрать эти данные json и загрузить их в базу данных Postgres. Строки имеют формат:

{"id": "0436d9b9305d", "base": {"ateco": [{"code": "46.11.03", "rootCode": "G", "description": "Agenti e rappresentanti di animali vivi"}], "founded": "1972-07-10", "legalName": "COBEM - S.R.L.", "legalForms": [{"name": "Società Di Capitale", "level": 1}, {"name": "Società A Responsabilità Limitata", "level": 2}]}, "name": "COBEM - S.R.L.", "people": {"items": [{"name": "45808b0b5b5affa871c8e91169bb10c6930fac56", "givenName": "64e4393f477394f11f6477ca76395ed469548865", "familyName": "68ee44f14dc54d664dffe63195d42a14988b69bb"}]}, "country": "it", "locations": {}}

Существуют миллионы строк, и не все форматирование согласовано, т.е. некоторые вложенные словари структурно отличаются от других.

Я взял 5 из этих строк и применил следующий Python:

import pandas as pd

df = pd.read_csv('samplecol.csv')
df = df.to_json('data.json')

Затем я использую https://jsonlint.com для проверки JSON, и все в порядке.

У меня есть файл JSON, data.json и база данных PostgreSQL, и я хочу получить data.json в Postgres.

Я запускаю следующее, чтобы создать таблицу:

SN_ITA_test=# CREATE TABLE jsons(ID serial NOT NULL PRIMARY KEY, info jsonb NOT NULL);

Когда я пытаюсь загрузить файл в Postgres, используя:

SN_ITA_test=# \copy jsons (info) FROM 'data.json';

Я получаю сообщение об ошибке:

ERROR:  invalid input syntax for type json
DETAIL:  Token "id" is invalid.
CONTEXT:  JSON data, line 1: {"json_doc":{"0":"{"id...
COPY jsons, line 1, column info: "{"json_doc":{"0":"{"id": "0436d9b9305d", "base": {"ateco": [{"code": "46.11.03", "rootCode": "G", "d..."

Вы нашли решение?

NotSoShabby 01.12.2019 16:55
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
393
0

Другие вопросы по теме