将 Python 字典列表转换为 Postgresql json 数组

2024-01-23

我正在尝试将 jsonb 元素的 Python(2.7) 列表插入到具有数据类型列的 Postgresql(9.4) 表中:jsonb[]。

这是一些代码:

import json
anArray = [{"name":"Joe","age":51,"yob":1964,"gender":"male"},{"name":"George","age":41,"dob":1974,"gender":"male"},{"name":"Nick","age":31,"dob":1984,"gender":"male"}]
myArray = []
#here's what I have so far: 
for e in anArray:
    myArray.append(json.dumps(e))
#this gives me
myArray = ['{"name":"Joe","age":51,"yob":1964,"gender":"male"}','{"name":"George","age":41,"dob":1974,"gender":"male"}','{"name":"Nick","age":31,"dob":1984,"gender":"male"}']
#insert commands
insert_sql = "INSERT INTO my_table (data) VALUES (%s);"
insert_data = (myArray, )
cursor.execute(insert_sql, insert_data)

现在,当我尝试插入 myArray 时,psycopg2 给我一个错误

psycopg2.ProgrammingError: column "data" is of type jsonb[] but expression is of type text[]

我不太确定将此数据插入表中的正确语法是什么。任何帮助/指示将不胜感激。

Solution感谢 piro,这是一个快速的解决方案。

insert_sql = "INSERT INTO my_table (columns) VALUES (%s::jsonb[]);"
insert_data = (myArray, )
cursor.execute(insert_sql, insert_data)

这不是 psycopg 错误:这是 psycopg 只是依赖的 PostgreSQL 错误。

该错误似乎表明没有隐式 text[]->jsonb[] 转换,因此您需要添加手动转换:

INSERT INTO my_table (columns) VALUES (%s::jsonb[]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Python 字典列表转换为 Postgresql json 数组 的相关文章

随机推荐

  • 贪心算法:区间着色

    在间隔调度中 算法是选择最早完成时间 但在间隔着色中 前者不起作用 是否有示例或解释为什么选择最早完成时间不适用于间隔着色 区间着色问题是 给定一组区间 我们想要着色 所有间隔 以便给定相同颜色的间隔不相交 目标是尽量减少使用的颜色数量 这
  • 如何在 jupyter markdown 单元格中创建新行

    md S a set of shops I a set of items M wants to get 我想在这两句话之间换一条新线 我们通常在第一个句子之后在新行之前放置 空格 但它在 Jupyter 中不起作用 我怎样才能做到这一点 我
  • 没有名为“requests”的模块 Python 3.5.0

    我需要使用requests在我的代码中 但它说它尚未安装 我收到以下错误 No module named requests 它实际上已在 python 2 7 中安装并运行 Requirement already satisfied use
  • 无法使用存储过程 pyodbc SQL SERVER 创建数据库

    我正在尝试调用一个从 pyodbc 创建数据库的存储过程 以下是代码的最小示例 import pyodbc conn pyodbc connect Driver SQL Server Server SERVERNAME Trusted Co
  • Tomcat 正在运行吗?

    有兴趣了解人们通常如何检查 Tomcat 是否在 Unix 环境上运行 我要么使用以下命令检查进程是否正在运行 ps ef grep java ps ef grep logging 或者我检查端口号是否处于活动状态 netstat a gr
  • 在 MAX(DATE) 上左连接

    我有 2 个表 交易 a 和价格 b 我想从表 b 中检索交易日期有效的价格 表a包含物品交易的历史记录 商店类型 日期 文章 表 b 包含商品价格的历史记录 商店类型 日期 文章 价格 目前我有这个 Select a Store type
  • opencv 更新单应性矩阵以适合双倍大小的图像

    我正在使用光流进行视频稳定 为了使 calcOpticalFlowPyrLK 更快地工作 我将原始图像缩小了 2 倍并在其上运行该函数 如何修改单应矩阵 通过 findHomography 检索 以便能够扭曲透视原始的较大图像 这有点晚了
  • 如何重置/初始化变量?

    我遇到了变量问题 首先看到这段代码 然后我会解释我的问题 if pygame Rect colliderect hammer rect mole rect random locations 100 440 350 440 600 440 1
  • 重新采样环回捕获

    我使用以下代码成功从 Wasapi 捕获声音 IWaveIn waveIn new WasapiLoopbackCapture waveIn DataAvailable OnDataReceivedFromWaveOut 我现在需要做的是将
  • 对于具有动态标头的大部分静态页面来说,最佳的 Rails 缓存选项是什么

    我有一组主要是静态的页面 除了它们的布局包含更加动态的标题之外 我很乐意将其页面缓存相对较长的时间 到目前为止 最有前途的想法似乎是使用不带布局的操作缓存 class SomethingController lt ApplicationCo
  • iOS 脸书集成

    我正在开发简单的 Facebook 集成 允许用户将高分发布到他们的墙上 doodlejump 处理这个问题的方式是我的灵感来源 我可以使用它 但它不是很干净 我不知道该怎么做 我按照以下说明进行操作http developers face
  • 在Python中从目录(有大量文件)中选择随机文件

    我有一个包含大量文件 约 100 万 的目录 我需要从此目录中选择一个随机文件 由于文件太多 os listdir自然需要永恒的时间才能完成 有什么办法可以绕过这个问题吗 也许以某种方式了解目录中的文件数量 不列出它 并选择随机生成 n 的
  • 在项目中包含 image_picker 时出错(Flutter)

    为什么当我执行项目时不断出现此错误 一旦我将 image picker 放入我的 pubspec 中 就会发生这种情况 失败 构建失败并出现异常 什么地方出了错 任务 app processDebugResources 执行失败 Andro
  • R group by 和aggregate - 使用 plyr 返回组内的相对排名

    更新 我有一个数据框 测试 如下所示 session id seller feedback score 1 1 282470 2 1 275258 3 1 275258 4 1 275258 5 1 37831 6 1 282470 7 1
  • R 热图,Y 轴上的标签非常接近

    我正在使用 R 绘制 CSV 文件中数据的热图 10 列 条件和 1000 罗瓦 以下是我正在使用的代码 nba lt read csv 1317754115 csv sep nba matrix lt data matrix nba ce
  • 表动态加载SAPUI5/UI5

    我想在 SAPUI5 Table 组件中显示大量数据 我曾经通过动态加载来实现这些数据表 这意味着该表最初加载了约 50 条记录 用户向下滚动足够远后 下一组 50 条记录将加载到表中 这样我就可以显示包含超过 160 000 个条目的表格
  • 如何调试在客户计算机上崩溃的 Windows 应用商店应用程序?

    我收到一位客户的支持电子邮件 说他的应用程序在启动时崩溃 他收到的只是一条类似以下的消息 应用程序名称 遇到问题您可以向 Microsoft 发送有关以下内容的信息 出了什么问题来帮助改进这个应用程序 将发送给 Microsoft 的文件
  • Android Studio 禁用换行

    我在 Android Studio 上有这个奇怪的换行符 我想禁用它 因为它让我害怕 It s also available under the context menu
  • 放弃对 JRE 1.3 的支持

    我们提供了一个流行的开源 Java FTP 库 称为edtFTPj http www enterprisedt com products edtftpj overview html 我们希望放弃对 JRE 1 3 的支持 这将清理代码库 并
  • 将 Python 字典列表转换为 Postgresql json 数组

    我正在尝试将 jsonb 元素的 Python 2 7 列表插入到具有数据类型列的 Postgresql 9 4 表中 jsonb 这是一些代码 import json anArray name Joe age 51 yob 1964 ge