Google Chromeの履歴データベースから履歴を抽出し、CSVファイルに出力するプログラムを作成しています。私は、複数の行に情報を入れようとしています。たとえば、最初の行にURLのリスト、2番目の行にWebページのタイトルのリストです。私はこれを行うときしかし、私は次のエラーが表示されます複数のリストをPythonのCSV行に書き込む
はTypeError:Unicodeを解読することはサポートされていません
任意の助けをいただければ幸いです、以下の私のコードです:
import sqlite3
import datetime
import csv
def urls():
conn = sqlite3.connect('C:\Users\username\Desktop\History.sql')
cursor = conn.execute("SELECT url, title, visit_count, last_visit_time from urls")
timestamp = row[3]
value = datetime.datetime(1601, 1, 1) + datetime.timedelta(microseconds=timestamp)
with open("C:\Users\username\Desktop\\historyulrs.csv", "ab") as filecsv:
filecsvwriter = csv.writer(filecsv)
filecsvwriter.writerow(["Url", "Title", "Visit Count", "Last visit Time"])
for row in cursor:
with open("C:\Users\username\Desktop\\historyulrs.csv", "ab") as filecsv:
filecsvwriter = csv.writer(filecsv)
filecsvwriter.writerows([unicode(row[0], row[1]).encode("utf-8")])
conn.close()
urls()
は私も取り出しますCSVに追加するデータベースから訪問回数と最終訪問時間を計算します。私はこれをまだ実装していない。パンダを使用して
ここではいくつかのことは正しくありません。 'cursor'は' conn.cursor() 'でなければなりません。カーソルを使ってクエリを実行し、' data = cursor.fetchall() 'を使ってデータを取得します。 'timestamp = row [3]'は 'row'が定義されていないのでエラーを投げますか? CSVを2回開く必要はありません。あなたのタイトルを書いてから、あなたの 'for'ループに入ります。とにかく「ユニコード」が必要なのはなぜですか?私は答えを書くだろうが、私はあなたのDBの何も知らないので、それが動作すると確信することができませんでした。 – roganjosh