来自熊猫数据框的json文件中的正斜杠

edg*_*ase 5 python json python-2.7 pandas

我是json的新手,非常感谢您的帮助。我正在尝试将数据帧转换为json文件。

import pandas as pd

df = pd.DataFrame({ 'A' : [1., 2.5],
                    'B' : ['img/blue.png', 'img/red.png']})
print df
Run Code Online (Sandbox Code Playgroud)

输出是

    A             B
0  1.0  img/blue.png
1  2.5   img/red.png
Run Code Online (Sandbox Code Playgroud)

我想制作一个像这样的json文件:

'[1.0,"img/blue.png"],[2.5,"img/red.png"]'
Run Code Online (Sandbox Code Playgroud)

但是,当我使用以下

out = df.to_json(orient='values')[1:-1]
print out
Run Code Online (Sandbox Code Playgroud)

我得到这个

'[1.0,"img\\/blue.png"],[2.5,"img\\/red.png"]'
Run Code Online (Sandbox Code Playgroud)

如何获取正斜杠以在json文件中正确打印?

chr*_*isb 7

pandas使用引擎盖下的ujson库将其转换为json,并且似乎转义了斜线-请参见这里的问题。

作为一种解决方法,您可以使用python标准库json模块来转储数据-它不会像性能那样好,但是不会转义斜线。

import json

json.dumps(df.values.tolist())
Out[248]: '[[1.0, "img/blue.png"], [2.5, "img/red.png"]]'
Run Code Online (Sandbox Code Playgroud)


Upa*_*tal 5

在将 Pandas 数据帧转换为 json 的部分,如果您使用loads,它将转义\正斜杠

out = df.to_json(orient='values')[1:-1]
print out
Run Code Online (Sandbox Code Playgroud)

尝试

import json
print json.dumps(json.loads(out))
Run Code Online (Sandbox Code Playgroud)

对于蟒蛇 3:

import json
print(json.dumps(json.loads(out)))
Run Code Online (Sandbox Code Playgroud)


piR*_*red 0

我不确定,但我相信你想要这些。我认为正斜杠会破坏你的 json 并且需要转义。您是否已验证添加的反斜杠是否存在问题?

  • 为什么正斜杠会破坏 JSON?[JSON 标准](https://www.json.org/json-en.html) 规定 `/` **可以**通过 `\​` 进行转义,但**不**它**必须**转义。 (2认同)