簡體   English   中英

python csv閱讀器+特殊字符

[英]python csv reader + special characters

我正在編寫腳本以讀取CSV文件,並使用pygraphml將數據寫入圖形中。

問題是文件第一列中有一些這樣的數據,我無法讀取它們。

大師布偶™joèlbKýrie,Eléison

這是我的python腳本

import csv
import sys
from pygraphml import Graph
from pygraphml import GraphMLParser

#reload(sys)
#sys.setdefaultencoding("utf8")

data = []  # networkd data to write
g = Graph() # graph for networks

#Open File and retrive the target rows
with open(r"C:\Users\csvlabuser\Downloads\test.csv","r") as fp:
    reader = csv.reader(fp)
    unread_count = 2
    completed_list = []

    try:
        for rows in reader:
            if "tweeter_id" == rows[2]:  # skip and check the header
                print("tweeter_id column found")
                continue
            #if rows[2] not in completed_list:                    
            n = g.add_node(rows[2].encode("utf8"))
            completed_list.append(rows[2])
            n['username'] = rows[0].encode("utf8")
            n['userid'] = rows[1]
            if rows[3] != "NULL":   # edges exist only when there is retweets id
                g.add_edge_by_label(rows[2], rows[3])


            print unread_count
            unread_count +=1

    except:
        pass

fp.close()
print unread_count

g.show()
# Write the graph into graphml file format
parser = GraphMLParser()
parser.write(g, "myGraph.graphml")

請讓我知道問題出在哪里。

提前致謝。

Python 2 csv模塊無法處理unicode輸入或包含NUL字節的輸入(請參見模塊頁面頂部的注釋)。 由於您使用print作為關鍵字而不是函數,因此我猜您使用的是Python2。要在Python 2中將csv與Unicode一起使用,必須轉換為UTF-8編碼。

csv模塊的“示例”部分包含包裝程序的定義( UTF8RecoderUnicodeReaderUnicodeWriter ),這些定義使您可以解析任意編碼的輸入,無縫固定編碼,以便csv可以處理輸入,然后解碼回Python unicode對象(將文本表示為“純” Unicode文本,而不是特定的字節編碼)。

暫無
暫無

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

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