UnicodeEncode 错误导致 tracebook 但仍有一些输出(Pandas 列表到 .txt 文件)

UnicodeEncode error causes tracebook but still some output (Pandas list to .txt file)

我创建了一个列表列表,其中包含 pandas 数据框的列号和列名。


print(example_list)

[[0, 'name'] [1, 'gender'] ... [85, 'HEXACO_12'] [86, 'general self efficacy']]

为了方便与我一起工作的其他人,我已将此文件写入 .txt 文件,以便他们可以快速获取变量名称及其在数据框中的位置。

df2_positions = ([list((i, df2.columns[i])) for i in range(len(df2.columns))])

with open('file_positions.txt', 'w') as f_positions:
    for i in example_list:
        f_positions.write(f'{i}\n')

当它运行时,我在正确的位置得到了 .txt 文件并且它是完整的,但它抛出了以下错误:

---------------------------------------------------------------------------
UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-29-acec172b19f5> in <module>
     10 with open('file_positions.txt', 'w') as f_positions:
     11     for i in example_list:
---> 12         f_positions.write(f'{i}\n')

myfile.py in encode(self, input, final)
     17 class IncrementalEncoder(codecs.IncrementalEncoder):
     18     def encode(self, input, final=False):
---> 19         return codecs.charmap_encode(input,self.errors,encoding_table)[0]
     20 
     21 class IncrementalDecoder(codecs.IncrementalDecoder):

UnicodeEncodeError: 'charmap' codec can't encode character '\ufffd' in position 85: character maps to <undefined>

我很困惑,因为我已经检查了文件,而不是以 [86,'general self efficacy'] 结束 它以 [55,'When I see an opportunity for something I like, I get excited right away'] 结束。但是,回溯表明问题出在第 85 项中的一个字符上。

我已经尝试手动和以编程方式从列名中删除任何奇怪的字符,但我仍然遇到同样的错误。

谁能帮我弄清楚这是怎么回事?

谢谢。

可能问题出在下一项([56, '....']),因为当错误发生时当前项目没有被写入。所以如果它在文件里面,那不是问题行。

你能在这里添加这一行吗?