Python PYODBC与OpenJson问题

2024-06-02 07:46:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的Python脚本中运行以下代码,但由于语法错误而失败,我无法更正。第一次插入从web站点引入json数据,效果非常好。第二条insert语句格式化json代码并将其放入另一个SQL表中。这段代码在MSSQL中运行良好。第二个插入语是指缺少结束语,但我似乎有一个开始语和结束语。它还引用未解析的引用openjson和未解析的引用交叉应用。我试着在insert和select语句周围放上开始/结束括号,但没有成功。我查看了github上的pyodbc wiki,但没有看到类似的示例。我做错了什么?谢谢

cursor.execute("Insert Into InboundJson (json) values (?)", (json.dumps(response_json),))
conn.commit()  -- works fine

cursor = conn.cursor()
cursor.execute("Insert into [CCSBC-DW1].[SurveyMonkey].[dbo].Surveylist (SurveyId, Description, WebSite)

Select J_open.*
from
  dbo.InboundJson j
  cross apply
  openjson(j.[json], '$.data') with ( id          int ,
                                      title  varchar(200),

                                      href    varchar(200)) j_open;")
conn.commit()```





Tags: 代码jsonexecute语句openconncursorcommit
1条回答
网友
1楼 · 发布于 2024-06-02 07:46:31

对于多行字符串,只需使用三引号的附件:

cursor.execute("""INSERT INTO [CCSBC-DW1].[SurveyMonkey].[dbo].Surveylist (SurveyId, Description, WebSite)
                  SELECT J_open.*
                  FROM dbo.InboundJson j
                  CROSS APPLY OPENJSON(j.[json], '$.data') 
                              WITH (id int,
                                    title varchar(200),
                                    href varchar(200)) j_open;
               """)
conn.commit()

相关问题 更多 >