psycopg2: запись объектов JSON с помощью copy from. Как отформатировать строку json?

у меня есть таблица в postgresql со столбцом типа JSON. Я пытаюсь добавить данные в таблицу.

cursor.execute("""INSERT INTO my_table VALUES(%s);""",(json.dumps(myobject))

работает как шарм. Но теперь мне нужно увеличить пропускную способность. Вот код, который не работает:

import StringIO,psycopg2,json

buffer = StringIO.StringIO(json.dumps(myobject))
cursor.copy_from(buffer,'my_table')
connection.commit()

JSON, записанный в буфер, несовместим с copy_from. Например, символы " "должны быть экранированы, поэтому" n "должно быть" \n".

Как я могу написать строку в буфер, чтобы copy_from поместите правильный json в мой стол?

спасибо

1 ответов


Я нашел одно решение, которое, кажется, работает сейчас:

import StringIO,psycopg2,json

json_to_write = json.dumps(myobject).replace('\','\\')
buffer = StringIO.StringIO(json_to_write)
cursor.copy_from(buffer,'my_table')
connection.commit()

мне это не нравится, потому что откуда я знаю, что нет других проблем? Может быть, мне стоит сделать запрос на функцию для парней psycopg2?