我正在尝试使用Python和pyodbc将json-data从API导入到SQL数据库。
JSON数据示例
"id": "unique id string",
"created_at": "NULL",
"creator_id": "creator_id",
"updated_at": "NULL",
"updater_id": "updater_id",
"name": "Name",
SQL-Table SQL-Table
Insert-function(SQL Connection工作正常,我确信这一点):
data_string = json.dumps(data, indent=4)
self.cursor.execute("INSERT INTO SQLTable VALUES (?)", data_string)
我得到的错误:
pyodbc.Error: ('21S01', '[21S01] [Microsoft][ODBC SQL Server Driver][SQL Server]Column name or number of supplied values does not match table definition.
(213) (SQLExecDirectW); [21S01] [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared. (8180)')
我知道有一种方法可以用过程来做到这一点,但我想避免使用过程,除非它实际上是逻辑上更好的解决方案。
首先,我认为这是由于错误的时间格式,所以我现在用NULL替换它们。
1条答案
按热度按时间ohfgkhjo1#
SQL Server不会自动为您“Map”列。您需要使用
OPENJSON
或JSON_VALUE
来获取数据。或者,您可以在Python中读取值并通过单独的参数传递。