我在 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 放入我的表中?
谢谢
最佳答案
我找到了一个目前看来可行的解决方案:
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 人员提出功能请求?
关于python - psycopg2:使用 copy_from 编写 JSON 对象。如何格式化json字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26875804/