使用Python中的SQLite3数据库处理文本

时间:2016-12-12 05:31:42

标签: python sqlite

我有一个SQLite3数据库,其中包含日文文本句子和名为假名的其他字符,这有助于语音阅读。

我有一个函数remove_furigana,它可以处理一个字符串并返回没有假名字符的字符串。但是,当我通过这个函数时,从我的数据库中提取的句子似乎没有任何效果。有人可以向我澄清这里发生了什么,并指出我的解决方案吗?

{{1}}

1 个答案:

答案 0 :(得分:0)

Python SQLite fetchall function返回由该记录中的字段组成的元组。您需要将content列发送到函数:

def retrieve_article():
    c.execute('SELECT content FROM sentence WHERE article_id = "k10010770581000"')
    for row in c.fetchall():
        print(remove_furigana(row[0]))

或者,您可以使用row_factory来获取字典而不是元组:

import sqlite3

def dict_factory(cursor, row):
    d = {}
    for idx, col in enumerate(cursor.description):
        d[col[0]] = row[idx]
    return d

con = sqlite3.connect(":memory:") con.row_factory = dict_factory

在这种情况下,fetchall结果将是字典,您可以访问content字段:

    print(remove_furigana(row['content']))