簡體   English   中英

創建一個 CSV 文件,其中包含兩個列表,其中包括 python 中的 UTF-8

[英]Create a CSV file with two lists that include UTF-8 in python

我有 2 個列表,其中一個包含波斯語單詞,另一個包含數字

Headers = ['word', 'value']
list1 = ['سلام', 'خوبی']
list2 = [1, 2]

我想像這樣制作 csv 文件

value          word
1              سلام
2             خوبی

這是我的代碼,但不適用於 uft-8 字符

df = pd.DataFrame({'words': list1, 'class': list2})
    df.to_csv('milad.csv', encoding='utf-8', index=False)

這是結果

word              value
همراه او     1
همراه او     2

我該怎么做

我認為問題可能出在您用來打開 resulting.csv 文件的程序,而不是您的 python 代碼。 你用的是什么程序?

當我執行你的代碼並在記事本中打開生成的文件時,字符顯示正確,

words,class


1,سلام
2,خوبی

但是,當我在 excel 中打開它時,它產生了與您遇到的相同的問題。

word              value
همراه او     1
همراه او     2

您可能需要告訴您正在使用的打開 csv 文件的軟件使用 UTF-8。例如https://smallbusiness.chron.com/open-utf8-excel-63726.html

在寫入之前,您需要將字符串編碼為字節。

for x in enumerate(list1):
    list1[x[0]] = x[1].encode('utf-8')

這會將其更改為:

[b'\xd8\xb3\xd9\x84\xd8\xa7\xd9\x85', b'\xd8\xae\xd9\x88\xd8\xa8\xdb\x8c']

您可以稍后使用decode('utf-8')進行解碼

寫完后,

d = open('test.csv','r').read()

結果:

,word,value

0,b'\xd8\xb3\xd9\x84\xd8\xa7\xd9\x85',b'\xd8\xae\xd9\x88\xd8\xa8\xdb\x8c'

1,1,2

然后你可以解碼並讀取到 pandas,希望這對你有所幫助。

暫無
暫無

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

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