Posting after lots of try & error. I pull data from a site, data is instructed JSON format i.e Key-value pairs are in single quotes and double & single quotes in between value. Wanted to convert or write data to CSV.
Tried following code, it works if json properly formatted
with open('mm.json', 'r') as file:
data = json.load(file)
# Define CSV file name
csv_file = 'output.csv'
# Extracting all unique field names
fieldnames = set()
for entry in data['results']['details']:
fieldnames.update(entry.keys())
# Write JSON data to CSV file
with open(csv_file, 'w', newline='') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for entry in data['results']['details']:
writer.writerow(entry)
print(f"CSV file '{csv_file}' has been created successfully.")
JSON data
{
'query': {
'metrics': 'level1,level3,imps',
'start': '2024-05-04',
'end': '2024-05-04'
},
'results': {
'summary': {
'imps': 5000
},
'details': [{
'level1_id': '178674',
'level3_id': '567714',
'level1_label': 'Home - Professional - Desktop/Mobile',
'level3_label': 'Home-Desktop - New's & "Diseases" - 20728',
'imps': 1300
}, {
'level1_id': '4414672',
'level3_id': '5539737',
'level1_label': 'Ad Server - Test Ad Product Op's ',
'level3_label': 'Home',
'imps': 700
}, {
'level1_id': '19674',
'level3_id': '65540450',
'level1_label': 'Home - Professional - Desktop/Mobile',
'level3_label': 'default 320x50',
'imps': 2000
}, {
'level1_id': '4946859',
'level3_id': '6734448',
'level1_label': 'Pharma's - Corporate - Professional',
'level3_label': 'Tier 1|DT-All Positions_300x50|8143|8344',
'imps': 1000
}
]
},
'data_available': True
}
Wanted to convert it into CSV with headers
imps, level1_id, level3_label, level3_id, level1_label & their respective values. But its throwing error’s at
- Data not in double quotes
- double or single quotes in between values (like New’s & “Diseases” so on)