Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MySQLdb-获取值错误_Python_Mysql_Mysql Python - Fatal编程技术网

Python MySQLdb-获取值错误

Python MySQLdb-获取值错误,python,mysql,mysql-python,Python,Mysql,Mysql Python,正在尝试使用MySQLdb通过Python将列表导入MySQL…代码如下 当我运行它时,我得到一个ValueError- query = query % tuple([db.literal(item) for item in args]) ValueError: unsupported format character ',' (0x2c) at index 51 代码_ 当我打印查询字符串时,语句看起来很好,“干净”值看起来状态良好-任何帮助都将不胜感激 print clean 1.52,

正在尝试使用MySQLdb通过Python将列表导入MySQL…代码如下

当我运行它时,我得到一个ValueError-

query = query % tuple([db.literal(item) for item in args])
ValueError: unsupported format character ',' (0x2c) at index 51
代码_

当我打印查询字符串时,语句看起来很好,“干净”值看起来状态良好-任何帮助都将不胜感激

print clean
1.52, -59.49%, 0.93, 0.17, 800, "1.51 - 1.59", 1.54, 1.59, N/A, -0.01, +5.25%, 0.16, N/A, 0.08, -2.32, N/A, 6.90M, -1.24, N/A, N/A, 1.50, 100, 326754, N/A, N/A, N/A, N/A, 1.51, "NYQ", N/A, "0.93 - 3.90", N/A, "3:48pm - <b>1.58</b>", "Ciber, "+3.95%", N/A, 3700, N/A, N/A, -34.46%, N/A, 2.84, N/A, N/A, N/A, 0.65, N/A, 127.47M, N/A, +69.89%, 2.63, N/A, N/A, 693036, 1.58, -0.65, 73289000, N/A, N/A, -0.83, 0.53, 80680000, N/A, N/A, N/A,  Inc. Common Stock", 3.90, "6/14/2016", -0.16, N/A, N/A, 760.00M, +0.06, N/A, N/A, N/A, 2.41, "3:48pm", N/A, "+0.06 - +3.95%", 326754

print query_string
INSERT IGNORE INTO YAHOO VALUES ("1.52, -59.49%, 0.93, 0.17, 800, "1.51 - 1.59", 1.54, 1.59, N/A, -0.01, +5.25%, 0.16, N/A, 0.08, -2.32, N/A, 6.90M, -1.24, N/A, N/A, 1.50, 100, 335969, N/A, N/A, N/A, N/A, 1.51, "NYQ", N/A, "0.93 - 3.90", N/A, "3:51pm - <b>1.58</b>", "Ciber, "+3.95%", N/A, 3700, N/A, N/A, -34.46%, N/A, 2.84, N/A, N/A, N/A, 0.65, N/A, 127.47M, N/A, +69.89%, 2.63, N/A, N/A, 693036, 1.58, -0.65, 73289000, N/A, N/A, -0.83, 0.53, 80680000, N/A, N/A, N/A,  Inc. Common Stock", 3.90, "6/14/2016", -0.16, N/A, N/A, 760.00M, +0.06, N/A, N/A, N/A, 2.41, "3:51pm", N/A, "+0.06 - +3.95%", 335969");
打印干净
1.52,-59.49%,0.93,0.17800,“1.51-1.59”,1.54,1.59,不适用,-0.01,+5.25%,0.16,不适用,0.08,-2.32,不适用,6.90M,-1.24,不适用,不适用,不适用,1.50100326754,不适用,不适用,1.51,“纽约市”,不适用,“0.93-3.90”,不适用,“下午3:48-1.58”,“Ciber,+3.95%“不,A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0.53日下午8068万,8068万万,N/A,0.80万,8068万,8068万,0.80万,0.80万万,0.83,0.53日下午0.53,8068万,N/A,N/A,N/A,N/A,N,N/A,N,N,N/A,N/A,N,N,N/A,A,N/A,N/A,A,N/A,A,N/A,A,N/A,N/A,A,N/A,N/A,A,A,N/A,N/A,A,A,N/A,A,N/A,A,A,A,A,N/A,A,A,N/A,A,A,A,A+0.06-+3.95%”,326754
打印查询字符串
在雅虎价值中插入忽略(“1.52,-59.49%,0.93,0.17800,“1.51-1.59”,1.54,1.59,N/A,-0.01,-5.25%,0.16,N/A,0.08,-2.32,N/A,6.90M,-1.24,N/A,N/A,1.50,100,335969,N/A,N/A,N/A,N/A,1.51,“NYQ”,N/A,“0.93-3.90”,N/A,“下午3:51,“+1.95%“不,A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0.65,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,A,A,A,公司普通股票,公司普通股,公司普通股票,公司普通股票,普通股,普通股,普通股票,3.90,“3.90,”3.90,“3.90,“2016年12,“6/14/14/2016年14/2016年14/2016年12,”6/14/2016年8,”3.16,”3.10,“6/14/16,,-16,,-0.16,,-0.16,”3.16,,+0.06-+3.95%“,335969”);
按以下方式与通配符或字符串替换一起使用时,需要2个参数:

  • 带有值占位符的查询字符串
    %s
  • 将替换上述
    %s
您不需要手动“清理”您的值。我还将列名包括在查询中,以明确说明:

data = ystockquote.get_all(name)
stock = data.values()
columns = data.keys()
columns[columns.index('change')] = '_change'
var_string = '%s' + ',%s' * (len(stock)-1))
query_string = '''
    INSERT IGNORE INTO YAHOO 
    ('''+','.join('`%s`' % (c,) for c in columns)+''') 
    VALUES (%s);''' % var_string
cur.execute(query_string, tuple(stock))

请向我们显示
query\u string
clean
的内容表
YAHOO
是否只有一列?否,81,命名与“股票”回报中的每个数据点匹配。59%是法定值吗?应该引用吗?@citramaillo,奇怪。你是从我最近的回答中得到这个错误的吗?@citramaillo,对不起。我的
var\u字符串
构造不正确。见更新answer@citramaillo,您可能在
var_string='%s'+',%s'*(len(stock)-1))
@citramaillo中的
s
之后缺少一个
s
,看起来
change
是一个mysql保留字,因此我们需要使用勾号对其进行转义。见更新answer@citramaillo,您的意思是您的列名是
\u change
而不是
change
data = ystockquote.get_all(name)
stock = data.values()
columns = data.keys()
columns[columns.index('change')] = '_change'
var_string = '%s' + ',%s' * (len(stock)-1))
query_string = '''
    INSERT IGNORE INTO YAHOO 
    ('''+','.join('`%s`' % (c,) for c in columns)+''') 
    VALUES (%s);''' % var_string
cur.execute(query_string, tuple(stock))