Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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
SQLite无法读取使用Python创建的表_Python_Python 3.x_Sqlite - Fatal编程技术网

SQLite无法读取使用Python创建的表

SQLite无法读取使用Python创建的表,python,python-3.x,sqlite,Python,Python 3.x,Sqlite,我正在尝试使用Python sqlite3库从CSV文件创建一个SQL表。 这就是我写的代码: 导入csv 导入sqlite3 csv_file='path/to/file.csv' db=sqlite3.connect'clients.db' execute'createtablemain ID INT主键不为空, 名字叫瓦查尔, 电邮:VARCHAR, 地址VARCHAR;' 该部分仅用于获取表中的行数 使用opencsv_文件,“r”作为csv_表: reader=csv.DictRead

我正在尝试使用Python sqlite3库从CSV文件创建一个SQL表。 这就是我写的代码:

导入csv 导入sqlite3 csv_file='path/to/file.csv' db=sqlite3.connect'clients.db' execute'createtablemain ID INT主键不为空, 名字叫瓦查尔, 电邮:VARCHAR, 地址VARCHAR;' 该部分仅用于获取表中的行数 使用opencsv_文件,“r”作为csv_表: reader=csv.DictReadercsv_表格,分隔符=';' 行=读卡器中r的sum1 我在看桌子 使用opencsv_文件,“r”作为csv_表: reader=csv.DictReadercsv_表格,分隔符=';' 对于i,枚举读取器中的行: db.execute'插入到主值中 “{idn}”、“{name}”、“{email}”、“{add}”;”。formatidn=i, name=行['name'], email=行['email'], add=行['address'] 打印“{}/{}:\t{}”。格式I+1,行,行 db.commit db.close 运行完这段代码后,我试图使用sqlite3访问该表,但每当我发送关于“main”表的查询时,都会收到错误消息:error:no-this-table:main

我曾尝试使用Python阅读该表,但效果很好:

导入sqlite3 db=sqlite3.connect'clients.db' rows=db.执行'SELECT*FROM main;' 对于行中的r: 印刷工 我从运行SQLite3的同一目录运行此脚本


我使用的是Python 3.6,我的操作系统是Ubuntu 16.04.6 LTS。

问题是Python和sqlite3实际上运行在不同的位置,所以它们使用不同的数据库

我变了

db=sqlite3.connect'clients.db' 到

db=sqlite3.connect'full/path/to/clients.db'
现在它工作得很好。

胡猜。由于您不使用完整路径,Python在一个文件夹中工作,sqlite3在另一个文件夹中工作,因此它们使用两个不同的数据库。@SergeBallesta我只是将其更改为完整路径,它就可以工作了,谢谢。请随意使用我的评论来构建答案,然后接受它,以避免留下未回答的问题。