- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试读取一个 csv 文件并用 SQL 上传。这是代码。我收到此错误“pypyodbc.ProgrammingError: ('HY000', 'SQL contains 21 parameter markers, but 1 parameters were supplied')” 我的 csv 文件有 21 列。你知道如何解决这个问题吗?
import csv
import pypyodbc
import traceback
import sys
import time
import os.path
import codecs
# Create a connection to DataBase
con = pypyodbc.connect('DRIVER={SQL Server};SERVER=c1devsql01.XXXXXX.com;DATABASE=Parameters;UID=XXXXXX;PWD=XXXX@1')
cur = con.cursor()
query = "insert into Calc_Rules_Metadata_New (Calc_Set, Calc_Set_Identifier, Dependency, Data_Subset_Keys, Calc_Step, Calc_Variable, Calc_Operator, Calc_Operand, By_Variable, Where_Clause, Source_Tracking_Columns, Source_Tracking_Rows, Revision, Tag, Notes, Updated_By, Updated_On, IsDeleted, Metadata_Type, Calculation_Summary) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
filename = str(sys.argv[1])
basedir = 'C:/RiskClient/InputData/Metadata/Calc'
fullpath = os.path.join(basedir, filename)
with open(fullpath, 'r') as csvfile:
next(csvfile) # Skip Header
reader = csv.reader(csvfile, delimiter=',')
for row in reader:
#for i in range(len(row)):
#if row[i] == '':
# row[i] = None
print(row)
cur.execute(query, row)
cur.commit()
运行时错误:
['1', '1', '1b.B: Question Test 1', '', 'PFA_Unique_Identifier, Fund_Unique_Identifier; Business_Date', '1', 'Total_Borrowing', 'SUM', 'Borrowings_Data.Amount', '', "UPPER(Borrowings_Data.Commitment_Type) IN ('COMMITTED_AND_DRAWN', 'UNCOMMITTED') AND Borrowings_Data.Business_Date = &Rep_Date AND Fund_Unique_Identifier In (select Fund_Unique_Identifier from Fund_Level_Information where Applicable_PF_Sections IS NOT NULL AND PFA_Unique_Identifier = &PFA_UID AND Business_Date = &Rep_Date)", '', '', '', '', '', '', '', '', 'Test Form', '']
Traceback (most recent call last):
File "C:\RiskClient\InputData\Metadata\Calc\CalcMetadata.py", line 47, in <module>
cur.execute(query, row)
File "C:\Program Files\Python3.5.2\lib\site-packages\pypyodbc-1.3.3-py3.5.egg\pypyodbc.py", line 1470, in execute
File "C:\Program Files\Python3.5.2\lib\site-packages\pypyodbc-1.3.3-py3.5.egg\pypyodbc.py", line 1263, in _BindParams
pypyodbc.ProgrammingError: ('HY000', 'The SQL contains 20 parameter markers, but 21 parameters were supplied')
最佳答案
您提供的是单个列表,而不是一整套位置参数。当您在查询字符串中提供这 21 个 ?
而只是 cur.execute(query, row)
中的 row
时,您实际上是在说将该列表填充到第一个 ?
中,并且没有为剩下的二十个提供任何参数。要解决,您需要像这样提供 *args
:
cur.execute(query, *row)
确保您的行(即本场景中的列表)实际上有 21 个项目。否则,您仍然会收到有关未提供正确数量参数的错误消息。
关于python - ('HY000' , 'The SQL contains 21 parameter markers, but 1 parameters were supplied' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42543721/
第一次使用 Mercurial,WindowsXP 上出现问题(可能会在所有 Win 安装上发生)。我在一个不明显的地方找到了答案,所以我自己提出/回答这个问题,这样其他人就不必像我一样搜索。 第一次
我有一个用于打印机碳粉库存的 WinForm 桌面应用程序。数据库位于远程 SQL Server 上,仅由两个订单和交货表组成,库存数量仅通过跟踪订单和交货时间计算得出。加上一堆包含制造商、型号、类别
我知道在 SO 上有成千上万个像这样的问题,但我已经看到了所有问题,但我仍然无法解决我的问题。 我正在使用 ansible 做所有事情,所以它非常自动化,但无论如何,这是我的文件: pg_hba.co
数据库.yml: # SQLite version 3.x # gem install sqlite3 # # Ensure the SQLite 3 gem is defined in yo
我正在开发一个 JavaFX 项目,我在其中使用 Task 进行网络调用.不幸的是,我无法找到如何将参数传递给它。我搜索了很多链接,但没有一个提供。来自 java2s 的一个链接声称它们正在通过,但代
我正在尝试从我的 .py 文件创建一个可执行文件。 我这样做了: import cx_Freeze executables = [cx_Freeze.Executable("Cobra.py")] c
版本:postgresql 14 和 citus 10.2 当我执行 select rebalance_table_shards('tbl_name'); 在CN节点,postgresql报错:ERR
背景: 我正在做一个代码翻译项目,需要我生成变量名。我生成的名字都不应该是重复的。 我真的很沮丧,因为使用 Python 生成器函数会非常简单和优雅。 我试过的: 我之前这样做的方式是通过递归调用我的
我正在尝试向 Azure 的认知文本分析提供一些简单的、Hello-Worldish 的 JSON 示例;使用此测试数据: { "documents": [ { "lan
我正在尝试向 Azure 的认知文本分析提供一些简单的、Hello-Worldish 的 JSON 示例;使用此测试数据: { "documents": [ { "lan
我正在尝试使用 Office365 邮件服务器发送邮件,但一直遇到此问题/异常,目前看不到任何解决方案。对此进行了大量研究,但找不到任何具有类似问题的帖子: System.Net.Mail.SmtpE
假设我有 a graph where the x-axis tick labels are very long strings ,所以我想交替填充刻度(文本和 x 轴之间的垂直距离),以便刻度标签不重
我想根据下面的查询输出一个 5 列表,phpmyadmin 上的输出是正确的,但我收到错误: 为 php 页面上的 foreach() 提供的参数无效。任何帮助将不胜感激。谢谢 代码: get('id
给定一个包含成对的“因素”和一个存在标志的表: create table pairs ( factor_1 text, factor_2 text, exists boolean
因此,我必须在 postgres 中导入数据库,但出现以下错误:“未提供服务器!”我搜索了一下,我明白这是因为 PHP 文件大小限制、帖子大小或内存大小。我在 Linux Ubuntu 上使用 LAM
我已经在 linux (kubuntu) 和最新版本的 pgadmin3 上安装了 postgresql 9.2,但是当我连接它们时出现这个错误: 发生错误:连接到服务器时出错:fe_sendauth
我正在尝试使用下面的 setup.py 代码将我的 Python 程序转换为 Py2exe 库: from distutils.core import setup import py2
我正在尝试使用 boost::asio 库在网络上发送原始 TCP 数据包。我的程序在 Mac OS X 10.8 上运行良好,但是当我在 Windows 7 下运行该程序时,出现异常(在控制台中):
所以我已经从初始布局更改了它,但这是我的导航栏当前的样子: Nav Bar 这是我搞砸的代码: {% include 'site-nav' %}
抱歉,因为我的标题与 StackOverFlow 上的许多其他标题相似,但这些解决方案均未解决我的问题。 我正在使用 Relative Layout 设计布局。在代码 View 中设计后,当我更改为图
我是一名优秀的程序员,十分优秀!