Πώς να μετατρέψετε JSON σε CSV στην Python
Πίστωση εικόνας: oatawa/iStock/GettyImages
Μπορείτε να μετατρέψετε JSON σε CSV στη γλώσσα προγραμματισμού Python χρησιμοποιώντας ενσωματωμένες βιβλιοθήκες που συνοδεύουν τη γλώσσα. Μπορείτε να κάνετε βρόχο μέσω του αντικειμένου JSON και να εξάγετε τα κλειδιά και τις τιμές του ως σειρές σε ένα αρχείο τιμών διαχωρισμένων με κόμματα. Λάβετε υπόψη ότι δεν μπορούν εύκολα να αναπαρασταθούν όλα τα αρχεία JSON ως μεμονωμένα CSV, επομένως, ανάλογα με τη μορφή, μπορεί να χρειαστεί να χρησιμοποιήσετε πολλά αρχεία CSV για να αναπαραστήσετε όλα τα δεδομένα με χρήσιμο τρόπο.
Κατανόηση JSON και CSV
Τα αρχεία JSON και CSV είναι δύο συνηθισμένοι τρόποι αναπαράστασης ψηφιακών δεδομένων. Το JSON σημαίνει Σημείωση αντικειμένου JavaScript, και είναι ένας τρόπος αναπαράστασης δεδομένων ως ένθετες αντιστοιχίσεις κλειδιών σε τιμές καθώς και λίστες δεδομένων. Είναι εμπνευσμένο από το πώς αναπαρίστανται τα δεδομένα στη γλώσσα προγραμματισμού JavaScript, αλλά πολλές σύγχρονες γλώσσες προγραμματισμού, συμπεριλαμβανομένης της Python, διαθέτουν εργαλεία για την επεξεργασία δεδομένων JSON.
Το βίντεο της ημέρας
ΕΝΑ τιμή διαχωρισμένη με κόμμα Το αρχείο είναι ένας άλλος τρόπος αναπαράστασης δομημένων δεδομένων. Αυτά τα αρχεία χρησιμοποιούνται συχνά με υπολογιστικά φύλλα και παρόμοιους τύπους προγραμμάτων, οπότε αν θέλετε εισαγωγή JSON στο Excel μπορεί να είναι χρήσιμο να το μετατρέψετε πρώτα σε αρχείο CSV. Γενικά, τα αρχεία CSV περιλαμβάνουν κεφαλίδες στηλών στο επάνω μέρος του αρχείου που υποδεικνύουν τι είναι αποθηκευμένο σε κάθε στήλη. Στη συνέχεια, κάθε γραμμή στο αρχείο αποτελείται από πολλές τιμές, μία για κάθε στήλη, διαχωρισμένες με κόμμα. Υπάρχουν ειδικοί κανόνες για το χειρισμό δεδομένων με κόμματα σε αυτά.
Όπως και με τα αρχεία JSON, υπάρχουν πολλά εργαλεία σε πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένης της Python, για τη δημιουργία και την ανάγνωση αρχείων CSV.
Μετατροπή JSON σε CSV
Μπορείτε να μετατρέψετε JSON σε CSV χρησιμοποιώντας τις ενσωματωμένες βιβλιοθήκες JSON και CSV στην Python. Εισαγάγετε τα στον κώδικά σας προσθέτοντας γραμμές που λένε "εισαγωγή json" και "εισαγωγή csv" κοντά στην κορυφή του κώδικά σας.
Στη συνέχεια, χρησιμοποιήστε τη βιβλιοθήκη JSON "φορτώνω" μέθοδος εισαγωγής των δεδομένων από ένα αρχείο JSON. Θα φορτωθεί ως λεξικό Python. Χρησιμοποιήστε το λεξικό "κλειδιά" μέθοδος για τον προσδιορισμό των πεδίων δεδομένων στο αρχείο JSON που θα γίνουν οι στήλες στο αρχείο CSV σας.
Χρήση της βιβλιοθήκης CSV "DictWriter" τάξη για να δημιουργήσετε ένα αρχείο CSV με αυτές τις στήλες, προσδιορίζοντάς τις χρησιμοποιώντας το DictWriter's "ονόματα πεδίων" διαφωνία. Χρησιμοποιήστε το "επικεφαλίδες γραφής" μέθοδος για την έξοδο των ονομάτων στηλών στο επάνω μέρος του CSV.
Στη συνέχεια, πραγματοποιήστε βρόχο μέσω του αντικειμένου JSON με a για βρόχο. Κλήση τη μέθοδο "writerow" του αντικειμένου CSV σε κάθε στοιχείο δεδομένων στο αρχείο JSON για να δημιουργήσετε μια αντίστοιχη σειρά στο αρχείο CSV.
Σύνθετα αρχεία JSON
Ορισμένα πολύπλοκα αρχεία JSON μπορεί να είναι πιο δύσκολο να αναπαρασταθούν ως CSV. Αυτό μπορεί να περιλαμβάνει αρχεία που δεν ευθυγραμμίζονται αμέσως σε μια τυπική δομή γραμμής και στήλης. Εάν έχετε να κάνετε με ένα τέτοιο αρχείο και θέλετε να το μετατρέψετε σε CSV, έχετε μερικές επιλογές.
Αρχικά, μπορείτε να αναζητήσετε το συνολικό σύνολο πεδίων δεδομένων που εμφανίζονται στο αρχείο JSON και να τις κάνετε τις στήλες του CSV σας. Αφήστε μια στήλη κενή σε μια συγκεκριμένη σειρά εάν δεν εμφανίζεται εκεί. Χρησιμοποιήστε την επιλογή "extrasaction='ignore'" στη ρύθμιση του Python CSV DictWriter για να το κάνει αυτό αυτόματα για πεδία που δεν εμφανίζονται σε ένα συγκεκριμένο τμήμα δεδομένων.
Μπορείτε επίσης να εξετάσετε το ενδεχόμενο να αντιπροσωπεύσετε το αρχείο JSON ως πολλαπλά CSV, ένα για κάθε τύπο δεδομένων που αντιπροσωπεύεται σε αυτό. Χρησιμοποιήστε Python αν δηλώσεις για τον εντοπισμό σε ποιο αρχείο CSV πρέπει να εγγραφεί ένα συγκεκριμένο τμήμα δεδομένων.
Αυτή η τεχνική μπορεί επίσης να είναι χρήσιμη για ένθετα αρχεία JSON, στα οποία τα αντικείμενα JSON περιέχουν άλλα αντικείμενα. Αυτά τα υπο-αντικείμενα μπορούν να τεθούν στο δικό τους αρχείο CSV με ένδειξη σε ποια σειρά στο κύριο CSV αντιστοιχούν.