您好,谢谢您抽出宝贵的时间阅读本文。我想从一个数据库中提取大量文本到另一个数据库。问题是,当我从数据库中读取文本时,它包含很多“ \ N”“ \ n”。如果有人可以向我指出正确的方向或准确告诉我这里发生了什么以及为什么命令fetchall如此行事,我将不胜感激。
提前谢谢!
这是我正在使用的代码:
import sqlite3
database_path = "E:/Thesis stuff/Python/database/"
conn = sqlite3.connect(database_path + 'test2.db')
c = conn.cursor()
current_number = 0
# creates the table to which the descriptions go
c.execute("CREATE TABLE IF NOT EXISTS product_d (product_description TEXT)")
conn.commit()
c.execute("SELECT description FROM ourdata")
text_to_format = c.fetchall()
print(text_to_format[0])
text_list = []
# make a list of the descriptions
for text in text_to_format:
text = str(text)
text_list.append(text)
# put all the elements of the list into the new table
for item in text_list:
c.execute("INSERT INTO product_d (product_description) VALUES (?)", (text_list[current_number],))
print("at number " + str(current_number))
current_number += 1
conn.commit()
c.close()
conn.close()
答案 0 :(得分:1)
在第二个示例中,赠品是字符串周围的括号。 fetchall()
返回一个元组列表,在“创建描述列表”块中,您将这些元组显式转换为字符串。相反,您要做的只是简单地获取元组的第一个(在这种情况下,也是唯一)元素。它应该像更改此行一样简单:
text = str(text)
对此:
text = text[0]