使用pgAdmin 4导入CSV至PostgreSQL时jsonb列报错求助
PostgreSQL jsonb列CSV导入报错解决方法
从报错信息来看,PostgreSQL接收到的JSON内容是{thiskey:thisvalue},不符合JSON规范——JSON的键和字符串值必须用双引号包裹。你的CSV里虽写了"{""thiskey"":""thisvalue""}",但导入时因引号解析或格式问题,导致转义的双引号未被正确识别,最终传递给数据库的是无效JSON。
以下是具体解决步骤:
修正CSV格式
两种可行的写法任选其一:
- 用单引号包裹JSON内容(CSV默认以双引号为字段包裹符,单引号不会干扰解析):
id,testjson 00552b94-7b13-491e-83d1-6cbebe1b7613, '{"thiskey":"thisvalue"}' - 保留双引号包裹JSON字段,但删除逗号后的空格(避免字段开头多空格导致JSON解析失败),同时确保双引号转义正确:
id,testjson 00552b94-7b13-491e-83d1-6cbebe1b7613,"{""thiskey"":""thisvalue""}"
调整pgAdmin导入设置
在导入向导的数据格式步骤,确认以下配置:
- 字段分隔符:设置为逗号(
,) - 字符串引号:设置为双引号(
") - 勾选「忽略空格」选项(避免字段前后的空格被纳入JSON内容)
- 转义字符:设置为双引号(
")(确保CSV里的""被解析为单个")
验证格式有效性
导入前可以在psql中先验证JSON格式是否合法:
SELECT '{"thiskey":"thisvalue"}'::jsonb;
若能正常返回结果,说明JSON格式无误,再重新导入修正后的CSV文件即可。
内容的提问来源于stack exchange,提问作者MC2k
相关产品推荐
相关产品推荐

