将带有俄语字符的 numpy.ndarray 写入文件

Posted

技术标签:

【中文标题】将带有俄语字符的 numpy.ndarray 写入文件【英文标题】:Write numpy.ndarray with Russian characters to file 【发布时间】:2016-11-10 22:01:41 【问题描述】:

我尝试将numpy.ndarray 写入文件。 我用

unique1 = np.unique(df['search_term'])
unique1 = unique1.tolist()

然后下一次尝试 1)

edf = pd.DataFrame()
edf['term'] = unique1
writer = pd.ExcelWriter(r'term.xlsx', engine='xlsxwriter')
edf.to_excel(writer)
writer.close()

和 2)

thefile = codecs.open('domain.txt', 'w', encoding='utf-8')
for item in unique:
    thefile.write("%s\n" % item)

但都返回UnicodeDecodeError: 'utf8' codec can't decode byte 0xd7 in position 9: invalid continuation byte

【问题讨论】:

你的意思是标题是俄语字符写入numpy.ndarray到文件?目前,缺少一个u,这使得仅看标题很难理解你在问什么。 【参考方案1】:

如果您将字符串编码为 utf8,则第二个示例应该可以工作。

以下在 Python2 中使用 utf8 编码文件工作:

# _*_ coding: utf-8

import pandas as pd

edf = pd.DataFrame()
edf['term'] = ['foo', 'bar', u'русском']

writer = pd.ExcelWriter(r'term.xlsx', engine='xlsxwriter')
edf.to_excel(writer)

writer.save()

输出:

【讨论】:

以上是关于将带有俄语字符的 numpy.ndarray 写入文件的主要内容,如果未能解决你的问题,请参考以下文章