お手数ですが、文字エンコードに問題があります
私は、その後の分析のためにイタリア語twitterersからツイートをダウンロードしています。 一度読み込まれると、私はそれらをPythonのデータフレームに格納し、ファイルに書き出します。
ファイルに書き込むと、イタリア語で存在する "è"のような特殊文字は、X8/XEなどの文字に変換されます。
utf8、Latin1、またはISO-8859-1のようないくつかのエンコーディングを試しましたが、問題は解決しません。
データフレームの各行は、名前、画面、名前、説明などの異なる情報を持つユーザーで、問題が発生しているフィールドです。ここで
は、私は、既存のデータフレームにユーザーを追加するために使用するライン行く:b=pd.DataFrame(np.array([[user.id,
user.created_at,
user.lang.encode('utf-8'),
user.screen_name.encode('utf-8'),
user.name.encode('utf-8'),
user.location.encode('utf-8'),
user.description.encode('utf-8'),
user.followers_count,
user.profile_image_url_https.encode('utf-8')]]), columns=col).append(b, ignore_index=True)
をそして、これは私が
b.to_csv(filename, encoding="utf-8")
だけからダウンロードした後、ファイル内の情報を書き込む方法ですTwitterのデータフレームでは、例えば、私は読むことができます:
"La vitaèun'opportunità... coglila"
が、ファイルにそれはに変換されます:
B "ラ・ヴィータ\ XC3 \ xa8 un'opportunit \ XC3 \ XA0 ... coglila"
私は何をすべきそれを元の文字列に戻すには???
:
をし、任意のエンコードせずにCSVに保存しますファイルにデータを保存するには?バイナリモードを使用していますか? – user312016
これは、文字列をいわゆる「バイナリ文字列」に変換しています。 'b" La vita \ xc3 \ xa8 un'opportunit \ xc3 \ xa0 ... coglila ".decode( 'utf-8')'を呼び出すことで、これらを通常の文字列に変換することができます。 –
印刷する場合は、バイトテキストを正しく表示する必要があります。 – sirfz