gpt4 book ai didi

python - 在 unicode 中将 pandas DataFrame 写入 JSON

转载 作者:太空狗 更新时间:2023-10-29 20:16:38 25 4
gpt4 key购买 nike

我正在尝试编写一个包含 unicode 到 json 的 pandas DataFrame,但是内置的 .to_json 函数对字符进行了转义。我该如何解决这个问题?

例子:

import pandas as pd
df = pd.DataFrame([['τ', 'a', 1], ['π', 'b', 2]])
df.to_json('df.json')

这给出:

{"0":{"0":"\u03c4","1":"\u03c0"},"1":{"0":"a","1":"b"},"2":{"0":1,"1":2}}

与期望的结果不同:

{"0":{"0":"τ","1":"π"},"1":{"0":"a","1":"b"},"2":{"0":1,"1":2}}


我尝试添加 force_ascii=False 参数:

import pandas as pd
df = pd.DataFrame([['τ', 'a', 1], ['π', 'b', 2]])
df.to_json('df.json', force_ascii=False)

但这会产生以下错误:

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


我正在使用 WinPython 3.4.4.2 64 位和 pandas 0.18.0

最佳答案

打开一个编码设置为 utf-8 的文件,然后将该文件传递给 .to_json 函数可以解决问题:

with open('df.json', 'w', encoding='utf-8') as file:
df.to_json(file, force_ascii=False)

给出正确的:

{"0":{"0":"τ","1":"π"},"1":{"0":"a","1":"b"},"2":{"0":1,"1":2}}

注意:它仍然需要 force_ascii=False 参数。

关于python - 在 unicode 中将 pandas DataFrame 写入 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39612240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com