Google 크롬 기록 데이터베이스에서 기록을 추출하고이를 CSV 파일로 출력하는 프로그램을 작성 중입니다. 정보를 여러 행에 넣으려고합니다. 예를 들어 URL의 목록을 첫 번째 행에, 웹 페이지 제목을 두 번째 행에 넣으려고합니다. 나는이 작업을 수행 할 때, 나는 다음과 같은 오류가 나타날 수파이썬의 CSV 행에 여러 목록 작성하기
형식 오류 : 유니 코드를 디코딩하는 것은 지원되지 않습니다
어떤 도움을 주시면 감사하겠습니다, 아래에있는 내 코드입니다 :
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 파일에 많은 도움이 될 수 있습니다 사용
몇 가지 사항이 여기에 표시되지 않습니다. 'cursor'는'conn.cursor()'이어야하고 커서를 통해 쿼리를 실행하고'data = cursor.fetchall()'을 사용하여 데이터를 검색합니다. 'timestamp = row [3]'는'row'가 정의되지 않았기 때문에 에러를 던져야합니까? CSV를 두 번 열어 볼 필요가 없습니다. 제목을 쓰고 'for' 루프로 이동하십시오. 어째서 유니 코드가 필요한 이유는 무엇입니까? 나는 대답을 쓸 것이지만 나는 당신의 DB에 대해 아무 것도 모르기 때문에 그것이 효과가있을 것이라고 확신 할 수 없다. – roganjosh