インターネットからテーブルをスクレイピングし、CSV ファイルとして保存しています。テキストにフランス語のアクセントを持つ文字が含まれているため、保存時に Unicode エラーが発生します。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-6: ordinal not in range(128)
どのような状況にも適用できる、アクセント付きの文字を保存するためのエレガントなソリューションを見つけたいと思います。私は時々以下を使用しました:
encode('ascii','ignore')
しかし、理由は不明ですが、今回は機能しません。セル内のタグも置き換えようとしているので、最初<sup>
に使用して変換しています。str()
私のコードの関連部分は次のとおりです。
data = [
str(td[0]).split('<sup')[0].split('>')[1].split('<')[0],
td[1].getText()
]
output.append(data)
csv_file = csv.writer(open('savedFile.csv', 'w'), delimiter=',')
for line in output:
csv_file.writerow(line)