In this short tutorial, you'll see the steps to convert DataFrame to JSON without backslash escape in Pandas and Python.

Note: Read also: How to Export DataFrame to JSON with Pandas

Suppose we have the following DataFrame:

Name Age site
0 Alice 25 http://example.com/
1 Bob 30 http://example.com/
2 Charlie 35 http://example.com/

Here is the result of the conversion with to_json() with option orient='records':

df.to_json(orient='records',lines=True)

We get a valid JSON file but with extract backslashes:

{"Name":"Alice","Age":25,"site":"http:\/\/example.com\/"}
{"Name":"Bob","Age":30,"site":"http:\/\/example.com\/"}
{"Name":"Charlie","Age":35,"site":"http:\/\/example.com\/"}

To convert Pandas DataFrame to JSON file without backslash escapes:

formatted_json = df.to_json(orient='records',lines=True).replace('\\/', '/')
print(formatted_json)

This will replace all additional backslash escapes with:

{"Name":"Alice","Age":25,"site":"http://example.com/"}
{"Name":"Bob","Age":30,"site":"http://example.com/"}
{"Name":"Charlie","Age":35,"site":"http://example.com/"}

To store the JSON data as a file without backslash we can do:

print(formatted_json, file=open('data.json', 'w'))

We can get this result without lines=True:

[
{
"Name": "Alice",
"Age": 25,
"site": "http://example.com/"
},
{
"Name": "Bob",
"Age": 30,
"site": "http://example.com/"
},
{
"Name": "Charlie",
"Age": 35,
"site": "http://example.com/"
}
]