我有两个列表,其中一个包括波斯语单词,另一个包括数字
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
然后你可以解码并读给熊猫听,希望这能有所帮助。