【问题标题】:psycopg2: Writing JSON objects using copy_from. How to format the json string?psycopg2:使用 copy_from 编写 JSON 对象。如何格式化json字符串?
【发布时间】:2015-01-08 15:30:08
【问题描述】:

我在 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 放入我的表中?

谢谢

【问题讨论】:

    标签: python json postgresql psycopg2


    【解决方案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 家伙提出功能请求?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2012-07-25
      • 2021-07-28
      • 2021-08-05
      • 2015-04-29
      • 2018-05-18
      相关资源
      最近更新 更多