[英]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.