Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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和sqlite3-将文本文件导入数据库_Python_Database_Sqlite - Fatal编程技术网

Python和sqlite3-将文本文件导入数据库

Python和sqlite3-将文本文件导入数据库,python,database,sqlite,Python,Database,Sqlite,谢谢你的帮助。我是SQLite3的新手,确实把这两者混在了一起。我尝试了下面的代码,但仍然不起作用 import csv import sqlite3 # Create the database connection = sqlite3.connect('addresses.db') cursor = connection.cursor() # Create the table cursor.execute('DROP TABLE IF EXISTS addresses') cursor.e

谢谢你的帮助。我是SQLite3的新手,确实把这两者混在了一起。我尝试了下面的代码,但仍然不起作用

import csv
import sqlite3

# Create the database
connection = sqlite3.connect('addresses.db')
cursor = connection.cursor()

# Create the table
cursor.execute('DROP TABLE IF EXISTS addresses')
cursor.execute('''CREATE TABLE addresses
             (ID text, Firstname text, Surname text, Address1 text, Address2 text, Postcode text)''')
connection.commit()

# Load the CSV file into CSV reader
csvfile = open('addresses.txt', 'r')
creader = csv.reader(csvfile, delimiter=',', quotechar='"')

# Iterate through the CSV reader, inserting values into the database
for t in creader:
    cursor.execute('INSERT INTO  addresses VALUES (?,?,?,?,?,?)', t )

# Close the csv file, commit changes, and close the connection
csvfile.close()
connection.commit()
connection.close()
我得到了错误
对于creader中的t: 文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/encodings/ascii.py”,第26行,解码 返回编解码器。ascii_解码(输入,自身错误)[0]
UnicodeDecodeError:“ascii”编解码器无法对位置0:序号不在范围(128)中的字节0xe2进行解码。

您没有显示所收到的错误

然而,您似乎混淆了sqlite3和MySQL。这是两个完全独立的数据库,但您的问题标题是“mysqlite3”。您在代码中连接到sqlite db文件,但随后尝试运行LOAD DATA,这是sqlite不支持的特定于MySQL的命令


您必须编写一些Python代码来读取CSV文件、迭代并将每一行插入数据库。
csv
模块将有所帮助。

据我所知,sqlite不支持加载数据本地填充

您应该逐行解析文件并生成插入 或者使用import命令


搜索.import

您说要将名为
names.txt
的文件加载到数据库中,但实际上您确实加载了一个文件
addresses.txt
…很抱歉提出了明显的问题,但有时…:-)对不起,我的打字错误。谢谢你的关注-我希望事情就这么简单!作为旁注,在阅读csv并将字段构造成列表之后,最好执行
executemany
以批量插入。我尝试使用csv模块,但收到一个错误。我已经编辑了最初的问题。感谢您迄今为止的帮助。这是一个Python问题,参考CLI文档并没有太大帮助