5

pandasデータフレームをjsonに変換中に次のエラーが発生する

OverflowError: 文字列のエンコード時にサポートされていない UTF-8 シーケンスの長さ

これはコードです

        bytes_to_write = data.to_json(orient='records').encode()
        fs = s3fs.S3FileSystem(key=aws_access_key_id, secret=aws_secret_access_key)
        with fs.open(file, 'wb') as f:
            f.write(bytes_to_write)

json に変換しようとしているデータにはより多くのutf-8コードが含まれていますが、

これを解決するには?

4

1 に答える 1

4

この回答が示唆するよう.to_json()に、関数とdefault_handlerパラメーターを使用してデータフレームを変換しました。ドキュメントはこちらにあります

default_handler=str上記のエラーが発生しないように、パラメーターに注意を払う必要があります。上記のドキュメントで詳細を読むことができます。

dataframe.to_json('foo.json', default_handler=str) 

ドキュメントにあるように、関数がjsonさまざまな方法で出力できることを忘れないでください。パラメーターはそれを指定します。orient='<option>'

orient: str
Indication of expected JSON string format.
...
The format of the JSON string:

- ‘split’ : dict like {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]}
- ‘records’ : list like [{column -> value}, … , {column -> value}]
- ‘index’ : dict like {index -> {column -> value}}
- ‘columns’ : dict like {column -> {index -> value}}
- ‘values’ : just the values array
- ‘table’ : dict like {‘schema’: {schema}, ‘data’: {data}}

Describing the data, where data component is like orient='records'.
于 2020-03-26T23:51:07.587 に答える