У меня есть файл 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..."






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