Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. import pandas as pd
  2. import json
  3.  
  4. def recursive(node, title=None):
  5. leaf = {}
  6. if type(node) == list and len(node) > 0:
  7. # print 'Checking list', title
  8. for item in node:
  9. if type(item) == list or type(item) == dict:
  10. child_leaf = recursive(item, title)
  11. if len(child_leaf.keys()) > 0:
  12. new_leaf = dict(leaf.items() + child_leaf.items())
  13.  
  14. else:
  15. leaf[title] = item
  16. elif type(node) == dict and len(node.keys()) > 0:
  17. # print 'Checking dict', title
  18. for key, value in node.iteritems():
  19. if title is not None:
  20. new_title = str(title) + '_' + str(key)
  21. else:
  22. new_title = key
  23. if type(value) == list or type(value) == dict:
  24. child_leaf = recursive(value, new_title)
  25. if len(child_leaf.keys()) > 0:
  26. leaf = dict(leaf.items() + child_leaf.items())
  27. else:
  28. leaf[new_title] = value
  29.  
  30. return leaf
  31.  
  32.  
  33. with open('json_file.json') as fi:
  34. data = json.load(fi)
  35. final_df = pd.DataFrame()
  36.  
  37. # Decide at which level do you want to create a line for csv and iterative at that node level
  38. for index, item in enumerate(data[0]):
  39. leaf = recursive(item)
  40. df = pd.DataFrame([leaf])
  41. if index == 0:
  42. final_df = df
  43. else:
  44. final_df = final_df.append(df)
  45. final_df.to_csv('output.csv',index=False, encoding='utf-8')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement