Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert Pandas DataFrame to JSON format

I have a Pandas DataFrame with two columns – one with the filename and one with the hour in which it was generated:

 File       Hour   F1         1   F1         2   F2         1   F3         1 

I am trying to convert it to a JSON file with the following format:

{"File":"F1","Hour":"1"}  {"File":"F1","Hour":"2"} {"File":"F2","Hour":"1"} {"File":"F3","Hour":"1"} 

When I use the command DataFrame.to_json(orient = "records"), I get the records in the below format:

[{"File":"F1","Hour":"1"},  {"File":"F1","Hour":"2"},  {"File":"F2","Hour":"1"},  {"File":"F3","Hour":"1"}] 

I'm just wondering whether there is an option to get the JSON file in the desired format. Any help would be appreciated.

like image 502
user3447653 Avatar asked Aug 31 '16 19:08

user3447653


People also ask

How do I write a Pandas DataFrame to a JSON file?

To convert the object to a JSON string, then use the Pandas DataFrame. to_json() function. Pandas to_json() is an inbuilt DataFrame function that converts the object to a JSON string. To export pandas DataFrame to a JSON file, then use the to_json() function.

How do I use JSON in Pandas?

You can convert JSON to Pandas DataFrame by simply using read_json() . Just pass JSON string to the function. It takes multiple parameters, for our case I am using orient that specifies the format of JSON string. This function is also used to read JSON files into pandas DataFrame.

Is Pandas good for JSON?

This API from Pandas helps to read JSON data and works great for already flattened data like we have in our Example 1. You can download the JSON from here.

How do I convert a Pandas DataFrame to a dictionary?

To convert pandas DataFrame to Dictionary object, use to_dict() method, this takes orient as dict by default which returns the DataFrame in format {column -> {index -> value}} . When no orient is specified, to_dict() returns in this format.


1 Answers

The output that you get after DF.to_json is a string. So, you can simply slice it according to your requirement and remove the commas from it too.

out = df.to_json(orient='records')[1:-1].replace('},{', '} {') 

To write the output to a text file, you could do:

with open('file_name.txt', 'w') as f:     f.write(out) 
like image 179
Nickil Maveli Avatar answered Oct 16 '22 01:10

Nickil Maveli