创建一个CSV文件,其中包含两个列表,其中包含python中的UTF-8



我有两个列表,其中一个包括波斯语单词,另一个包括数字

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

我该怎么做

我认为问题可能是用于打开生成的.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'xd8xb3xd9x84xd8xa7xd9x85', b'xd8xaexd9x88xd8xa8xdbx8c']

您可以稍后使用decode('utf-8')对此进行解码

写入后,

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

结果:

,word,value
0,b'xd8xb3xd9x84xd8xa7xd9x85',b'xd8xaexd9x88xd8xa8xdbx8c'
1,1,2

然后你可以解码并读给熊猫听,希望这能有所帮助。

最新更新