gpt4 book ai didi

python - 使用 Sqlite3 和 python 运行查询时,“NoneType”对象不可迭代错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:01:01 29 4
gpt4 key购买 nike

我想使用 Python 和 sqlite3 在 Jupyter Notebook 上的数据库中创建一个表。为了避免表已存在错误,我使用了以下代码:

    q1 = '''
CREATE TABLE IF NOT EXISTS person (
person_id TEXT PRIMARY KEY,
first_name TEXT,
last_name TEXT
);
'''
run_query(q1)

但是我收到了这个错误并且无法消除它。

TypeErrorTraceback (most recent call last)
<ipython-input-25-948d42611e56> in <module>()
7
8 '''
----> 9 run_query(q1)

<ipython-input-13-67c680d27fbe> in run_query(q)
3 def run_query(q):
4 with sqlite3.connect(db) as conn:
----> 5 return pd.read_sql(q,conn)
6
7 def run_command(c):

/dataquest/system/env/python3/lib/python3.4/site-packages/pandas/io/sql.py in read_sql(sql, con, index_col, coerce_float, params, parse_dates, columns, chunksize)
398 sql, index_col=index_col, params=params,
399 coerce_float=coerce_float, parse_dates=parse_dates,
--> 400 chunksize=chunksize)
401
402 try:

/dataquest/system/env/python3/lib/python3.4/site-packages/pandas/io/sql.py in read_query(self, sql, index_col, coerce_float, params, parse_dates, chunksize)
1443 args = _convert_params(sql, params)
1444 cursor = self.execute(*args)
-> 1445 columns = [col_desc[0] for col_desc in cursor.description]
1446
1447 if chunksize is not None:

TypeError: 'NoneType' object is not iterable

当我检查时,该表已创建,列也在那里。

任何帮助将不胜感激。

最佳答案

run_query() 使用 read_sql() 创建它是为了从数据库读取行,而不是创建表或插入行。 read_sql() 期望查询将从数据库获取行,并尝试迭代这些行,但 CREATE 返回 None - 并且您得到 “NoneType”对象不可迭代

您应该直接使用execute(query) - 即。

 with sqlite3.connect(db) as conn:
conn.execute(q1)

关于python - 使用 Sqlite3 和 python 运行查询时,“NoneType”对象不可迭代错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59233955/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com