Extracting Information From Multiple JSON Files To Single CSV File In Python
I have a JSON file with multiple dictionaries: {'team1participants': [ { 'stats': { 'item1': 3153, 'totalScore': 0, ... }
Solution 1:
You can make your data tidy so that each row is a unique observation.
teams = []
items = []
scores = []
for team in d:
for item in d[team]:
teams.append(team)
items.append(item['stats']['item1'])
scores.append(item['stats']['totalScore'])
# Using Pandas.
import pandas as pd
df = pd.DataFrame({'team': teams, 'item': items, 'score': scores})
>>> df
item score team
0 1853 2 team2participants
1 21523 5 team2participants
2 12503 1 team2participants
3 3153 0 team1participants
4 2123 5 team1participants
5 1253 1 team1participants
You could also use a list comprehension instead of a loop.
results = [[team, item['stats']['item1'], item['stats']['totalScore']]
for team in d for item in d[team]]
df = pd.DataFrame(results, columns=['team', 'item', 'score'])
You can then do a pivot table, for example:
>>> df.pivot_table(values='score ', index='team ', columns='item', aggfunc='sum').fillna(0)
item 1253 1853 2123 3153 12503 21523
team
team1participants 1 0 5 0 0 0
team2participants 0 2 0 0 1 5
Also, now that it is a dataframe, it is easy to save it as a CSV.
df.to_csv(my_file_name.csv)
Post a Comment for "Extracting Information From Multiple JSON Files To Single CSV File In Python"