Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- import json
- def recursive(node, title=None):
- leaf = {}
- if type(node) == list and len(node) > 0:
- # print 'Checking list', title
- for item in node:
- if type(item) == list or type(item) == dict:
- child_leaf = recursive(item, title)
- if len(child_leaf.keys()) > 0:
- new_leaf = dict(leaf.items() + child_leaf.items())
- else:
- leaf[title] = item
- elif type(node) == dict and len(node.keys()) > 0:
- # print 'Checking dict', title
- for key, value in node.iteritems():
- if title is not None:
- new_title = str(title) + '_' + str(key)
- else:
- new_title = key
- if type(value) == list or type(value) == dict:
- child_leaf = recursive(value, new_title)
- if len(child_leaf.keys()) > 0:
- leaf = dict(leaf.items() + child_leaf.items())
- else:
- leaf[new_title] = value
- return leaf
- with open('json_file.json') as fi:
- data = json.load(fi)
- final_df = pd.DataFrame()
- # Decide at which level do you want to create a line for csv and iterative at that node level
- for index, item in enumerate(data[0]):
- leaf = recursive(item)
- df = pd.DataFrame([leaf])
- if index == 0:
- final_df = df
- else:
- final_df = final_df.append(df)
- final_df.to_csv('output.csv',index=False, encoding='utf-8')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement