Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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连接到MySQL时_Python_Mysql_Sql - Fatal编程技术网

编程错误:未知列';楠';在';字段列表';使用Python连接到MySQL时

编程错误:未知列';楠';在';字段列表';使用Python连接到MySQL时,python,mysql,sql,Python,Mysql,Sql,我正在尝试将.csv文件中的数据写入MySQL数据库。运行代码时,我得到以下输出:mysql.connector.errors.ProgrammingError:1054(42S22):“字段列表”中的未知列“nan” add_sql = ("INSERT INTO db " "VALUES (%s, %s, %s, %s)") def data_processor(): df = (pandas.read_csv('data.csv').T) i = 0

我正在尝试将.csv文件中的数据写入MySQL数据库。运行代码时,我得到以下输出:mysql.connector.errors.ProgrammingError:1054(42S22):“字段列表”中的未知列“nan”

add_sql = ("INSERT INTO db "
           "VALUES (%s, %s, %s, %s)")

def data_processor():
    df = (pandas.read_csv('data.csv').T)
    i = 0
    while i < (len(df.T['id'])):
        id = df[i]['id']
        name = df[i]['name']
        desc = df[i]['desc']
        link = df[i]['link']
        output = (id, name, desc, link)
        cursor.execute(add_sql, output)
        i = i + 1

data_processor()
所有列都被指定为NOTNULL,因为我不希望有任何null。但是,我已经尝试在MySQL中再创建一个表'all2',它完全相同,但所有4列都没有'notnull'。在尝试写入时仍然出现相同的错误


刚刚修好了


我的数据是MDN中关于JavaScript的文章列表。虽然没有丢失数据,但875个条目中有2个被命名为:NaN和null。在我的csv文件中,它们甚至没有引号,只有逗号分隔。我以前试过使用str(el),我想它不是生成“NaN”,而是生成了“”。将“”置于null附近解决了此问题

显示此错误是因为您正在向数据库发送
NaN
值。请检查这样的值

import numpy as np
np.isnan(name)
如果您实际上不关心该
NaN
值,您可以尝试:

df.fillna(0)

然后用您喜欢的任何内容替换
0

我猜您的CSV文件中的一个整数值是
NaN
(不是一个数字)。请在分配到
输出后尝试添加
打印输出
行。这应该说明问题所在。我已经做到了如果name==None或desc==None或link==None:print(error)'显示没有错误,并且所有id都>0print(output)显示带有数据的漂亮元组,您可以将表定义和示例数据作为文本添加到问题中。np.isnan()仅适用于id值,并且没有一个是NaN。对于字符串值,我得到了一个TypeError,但不管怎样,我之前用'if name==None或desc==None或link==None'和name=='''等检查了它们,因此数据是精细的,df.fillna(0)以及df.fillna('string')没有为我做任何事情:(你知道还有什么可能导致这个问题吗?你可以尝试改变传递变量的方式:
add_-sql=(“INSERT-INTO-db-VALUES({0},{1},{2},{3})”)。format(str(id),name,desc,link))
添加列的名称也可以证明。add_-sql=(“INSERT-INTO-db”(
id
name
desc
link
)值(%s,%s,%s)”。
import numpy as np
np.isnan(name)
df.fillna(0)