我试图用copy方法将JSON类型的数据插入到PostgreSQL数据库中。但是我得到下面提到的错误

invalid input syntax for type json

DETAIL: Expected end of input, but found ""aco"".

CONTEXT: JSON data, line 1: "{""aco"...

COPY flights2016jsn04, line 1, column flight: ""{""aco"": [""AXE"", ""AXE"", ""AXE"", ""AXE""], ""dist2Org"": 984753, ""flight_att"": {""ypos"": [8..."

我不知道是什么问题,也不知道我在网上看到了什么。下面是我的代码和一些示例数据。

import json

import io

import pandas as pd

import psycopg2

dict_ = {"dist2Org": 984753, "aco": ["AXE", "AXE", "AXE", "AXE"],

"flight_att": {"xpos": [823.08988, 6540.32231, 999, 33321],

"ypos": [823.08988, 6540.32231, 999, 33321], "zpos": [823.08988, 6540.32231, 999.33321]}}

json_ = json.dumps(dict_)

col_json = ["id", "flight"]

df = pd.DataFrame([65654, json_]).T

df.to_csv('test_df')

output = io.StringIO()

# ignore the index

df.to_csv(output, sep='\t', header=False, index=False)

output.getvalue()

# jump to start of stream

output.seek(0)

conn = None

# connection string

conn_string = '{0}{1} {2}'.format("host='localhost' dbname=", 'postgres', "user='postgres' password='xxxx'")

# conn_string = "host='localhost' dbname='postgres' user='postgres' password='xxxx'"

# connect to the PostgreSQL database

conn = psycopg2.connect(conn_string)

# create a new cursor

cur = conn.cursor()

# load data

cur.copy_from(output, 'flights2016jsn04', null="", columns=(col_json))

# # commit the changes to the database

conn.commit()

# close communication with the database

cur.close()

except (Exception, psycopg2.DatabaseError) as error:

print(error)

finally:

if conn is not None:

conn.close()

我试图用copy方法将JSON类型的数据插入到PostgreSQL数据库中。但是我得到下面提到的错误invalid input syntax for type jsonDETAIL: Expected end of input, but found ""aco"".CONTEXT: JSON data, line 1: "{""aco"...COPY flights2016jsn04, lin... select COALESCE(null,null,now(),''); 报错如下: SQL Error [22007]: ERROR: invalid input syntax for type timestamp with time zone: "" Position: 33 org. postgresql .util.PSQLException: ERR... 解决 ERROR: invalid input syntax for type bytea 报错大义是不可用的bytea 类型 输入 语法 。 select cast (request as bytea) from nginx_log where id = 5567; ERROR: invalid input syntax for type bytea 间: 0.20...
文章目录1. 问题描述2. 解决方案 1. 问题描述 在 使用 PostgreSQL 数据库 遇到错误消息“invalid input syntax”,表明我们正在处理的是一个常见错误。完整的错误信息通常是下面这样: ERROR: invalid input syntax for type numeric: "c" at character 32 2. 解决方案 当用户试图 插入 与列 类型 不匹配的值 ,会发生此错误。如果问题不是由于 输入 错误而引起的,则可能是需要开发人员解决的应用程序端错误。 import psycopg2 conn = psycopg2.connect(host=***, port=***, database=***, user=***, password=***) cur = conn.cursor() cur.execute("select to_regclass(" + "\'" + ta...
PostgreSQL 支持 JSON 已久,那么 JSON 的value中支持哪些 类型 呢? 目前支持 str ing, numeric, boolean (true, false), null。 区分大小写哦。 /* *      Recursive Descent parse routines. There is one for each str uctural *      element in a