export script
This commit is contained in:
38
import_json.py
Normal file
38
import_json.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import json
|
||||
import csv
|
||||
|
||||
INPUT_FILE = "orders.json"
|
||||
OUTPUT_FILE = "orders_separated.csv"
|
||||
|
||||
def main():
|
||||
# Load JSON array
|
||||
with open(INPUT_FILE, "r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
|
||||
# Ensure it's a list
|
||||
if not isinstance(data, list):
|
||||
raise ValueError("JSON file must contain a top-level array of objects.")
|
||||
|
||||
# Convert nested fields to JSON strings
|
||||
for item in data:
|
||||
if "Customers" in item:
|
||||
item["Customers"] = json.dumps(item["Customers"], ensure_ascii=False)
|
||||
if "ProductsSold" in item:
|
||||
item["ProductsSold"] = json.dumps(item["ProductsSold"], ensure_ascii=False)
|
||||
|
||||
# Collect all possible keys to ensure full CSV header
|
||||
all_keys = set()
|
||||
for item in data:
|
||||
all_keys.update(item.keys())
|
||||
fieldnames = list(all_keys)
|
||||
|
||||
# Write CSV
|
||||
with open(OUTPUT_FILE, "w", newline="", encoding="utf-8") as f:
|
||||
writer = csv.DictWriter(f, fieldnames=fieldnames)
|
||||
writer.writeheader()
|
||||
writer.writerows(data)
|
||||
|
||||
print(f"Saved {len(data)} rows to {OUTPUT_FILE}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user