簡體   English   中英

在python中將多個列表寫入CSV行

[英]Writing multiple lists to CSV rows in python

我正在編寫一個程序,該程序從Google Chrome歷史記錄數據庫中提取歷史記錄,並將其輸出到CSV文件。 我正在嘗試將信息放在多行中,例如,第一行中的URL列表,第二行中的網頁標題。 但是,當我這樣做時,會出現以下錯誤:

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中。 我還沒有實現。

謝謝

使用熊貓可以為CSV文件提供很多幫助:

import sqlite3
import datetime
import pandas

def urls():
    urls = []
    titles = []
    counts = []
    last = []
    conn = sqlite3.connect('C:\Users\username\Desktop\History.sql')
    cursor = conn.execute("SELECT url, title, visit_count, last_visit_time from urls")

    for row in cursor:
    #now I am just guessing
        urls.append(row[0])
        titles.append(row[1])
        counts.append(row[2])
        last.append(row[3])

    df = pandas.DataFrame({'URL': urls,
                           'Title': titles,
                           'Visit Count': counts,
                           'Last visit Time': last})

    df.to_csv('historyulrs.csv', encoding='utf-8', index=False)
    conn.close()

urls()

請注意,我完全猜到了連續的數據順序,您需要根據需要進行編輯。 我也不太明白你為什么需要datetime

不看數據庫就很難回答。 但是類似的事情應該起作用,根據您的實際數據,可能需要進行一些小的修改。

import sqlite3
import datetime
import csv

def urls():
    conn = sqlite3.connect('C:\Users\username\Desktop\History.sql')
    c = conn.cursor()
    query = "SELECT url, title FROM urls"
    c.execute(query)
    data = c.fetchall()

    if data:
        with open("C:\Users\username\Desktop\\historyulrs.csv", 'w') as outfile:
            writer = csv.writer(outfile)
            writer.writerow(['URL', 'Title'])
            for entry in data:
                writer.writerow([str(entry[0]), str(entry[1])])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM