Home > database >  Convert multiple JSON File to CSV File, each in one column
Convert multiple JSON File to CSV File, each in one column

Time:11-23

I have multiple JSON File that need to be converted in one CSV File

These are the example JSON code

tryout1.json

{
"Product":{
    "one":"Desktop Computer",
    "two":"Tablet",
    "three":"Printer",
    "four":"Laptop"
},
"Price":{
    "five":700,
    "six":250,
    "seven":100,
    "eight":1200
}}

tryout2.json

{
"Product":{
    "one":"dell xps tower",
    "two":"ipad",
    "three":"hp office jet",
    "four":"macbook"
},
"Price":{
    "five":500,
    "six":200,
    "seven":50,
    "eight":1000
}}

This is the python code that I wrote for converting those 2 json files

import pandas as pd 
df1 = pd.read_json('/home/mich/Documents/tryout.json')
print(df1)

df2 = pd.read_json('/home/mich/Documents/tryout2.json')
print(df2)

df = pd.concat([df1, df2])

df.to_csv ('/home/mich/Documents/tryout.csv', index = None)

result = pd.read_csv('/home/mich/Documents/tryout.csv')
print(result)

But I didn't get the result I need. How can I print the first json file in one column (for both product and price) and the second in the next column? (view Image via Link)

The result I got

[enter image description here]

The result that I need

[The result that I need]

CodePudding user response:

You can first create a combined column of product and prices then concat them.

I am using axis = 1 since i want them to be combined side by side.(columns) axis = 0 will combine by rows.

import pandas as pd 
df1 = pd.read_json('/home/mich/Documents/tryout.json')
df1['product_price'] = df1['Product'].fillna(df1['Price'])

df2 = pd.read_json('/home/mich/Documents/tryout2.json')
df2['product_price'] = df2['Product'].fillna(df2['Price'])

pd.concat([df1['product_price'], df2['product_price']],axis=1)

enter image description here

  • Related