fixmint
EL

Μετατροπή CSV σε JSON και πίσω, χωρίς να χαλάσουν τα δεδομένα

Από · · ενημερώθηκε 8 Νοεμβρίου 2026 · 5 λεπτά ανάγνωση

Το CSV είναι ένας απλός πίνακας σε κείμενο: μία εγγραφή ανά γραμμή, με τα πεδία χωρισμένα από έναν διαχωριστή, συνήθως κόμμα. Χαλάει όταν ένα πεδίο περιέχει τον διαχωριστή, διπλό εισαγωγικό ή αλλαγή γραμμής, επειδή ο αναγνώστης πρέπει να ξεχωρίζει τη δομή από το περιεχόμενο. Ακολουθήστε τους κανόνες εισαγωγικών, ελέγξτε τον διαχωριστή και τη γραμμή κεφαλίδας, και κρατήστε τους αριθμούς με αρχικά μηδενικά ως κείμενο. Το υπόλοιπο άρθρο εξηγεί τι μπορεί και τι δεν μπορεί να διατηρήσει μια μετατροπή και επιστροφή.

Μετατροπή CSV σε JSONΘέλω CSV σε JSON ή το αντίστροφοΚάντε το δωρεάν

Τι είναι πραγματικά ένα αρχείο CSV

Το CSV δεν έχει ένα μοναδικό επίσημο πρότυπο, αλλά το RFC 4180 περιγράφει τη συνηθισμένη μορφή, και οι περισσότεροι αναγνώστες την ακολουθούν. Οι βασικοί κανόνες της χωρούν σε μια σύντομη λίστα:

  • Κάθε εγγραφή βρίσκεται στη δική της γραμμή, και το RFC ορίζει ότι οι γραμμές τελειώνουν με carriage return και line feed, CRLF.
  • Τα πεδία χωρίζονται με κόμματα.
  • Ένα πεδίο που περιέχει κόμμα, διπλό εισαγωγικό ή αλλαγή γραμμής περικλείεται σε διπλά εισαγωγικά.
  • Ένα διπλό εισαγωγικό μέσα σε πεδίο με εισαγωγικά γράφεται ως δύο διπλά εισαγωγικά.

Άρα η γραμμή 1001,"Smith, Ann",02134 έχει τρία πεδία, επειδή το κόμμα μέσα στα εισαγωγικά είναι περιεχόμενο. Ένας διαχωριστής που κόβει σε κάθε κόμμα βρίσκει τέσσερα. Ο αναλυτής του fixmint εφαρμόζει αυτούς τους κανόνες: ένα πεδίο με εισαγωγικά μπορεί να περιέχει διαχωριστή, αλλαγές γραμμής και διπλασιασμένα εισαγωγικά, ενώ ένα εισαγωγικό που δεν κλείνει αναφέρεται με τη γραμμή όπου ξεκινά.

Γιατί αλλάζει ο διαχωριστής

Το κόμμα είναι η προεπιλογή του RFC, αλλά όπου το κόμμα είναι το δεκαδικό διαχωριστικό, ώστε το 1,5 να σημαίνει ένα και μισό, τα υπολογιστικά φύλλα αποθηκεύουν συχνά το CSV με ερωτηματικά. Τα αρχεία με στήλες χωρισμένες με tab (TSV) αποφεύγουν τη σύγκρουση στα περισσότερα δεδομένα, γιατί τα tab σπάνια εμφανίζονται μέσα σε κείμενο.

Το μενού Διαχωριστικό προσφέρει Αυτόματο, Κόμμα, Ερωτηματικό, Tab και Pipe. Το Αυτόματο διαβάζει τις πρώτες δέκα γραμμές, μετρά κάθε υποψήφιο εκτός εισαγωγικών και επιλέγει εκείνον με τον πιο σταθερό αριθμό ανά γραμμή. Επιλέξτε μόνοι σας τον διαχωριστή όταν το Αυτόματο μαντεύει λάθος.

Μετατροπή στο fixmint

Το παράδειγμα χρησιμοποιεί τις προεπιλεγμένες ρυθμίσεις του εργαλείου Μετατροπή CSV σε JSON.

Παράδειγμα

Επικολλήστε αυτό το CSV, με το «Η πρώτη γραμμή είναι κεφαλίδα» επιλεγμένο:

id,name,zip,note
1001,"Smith, Ann",02134,"She said ""hi"""
1002,Bo,10001,"line one
line two"

Με το «Μετατροπή αριθμών» απενεργοποιημένο και την εσοχή JSON στα 2 κενά, το εργαλείο επιστρέφει:

[
  {
    "id": "1001",
    "name": "Smith, Ann",
    "zip": "02134",
    "note": "She said \"hi\""
  },
  {
    "id": "1002",
    "name": "Bo",
    "zip": "10001",
    "note": "line one\nline two"
  }
]

Με το «Μετατροπή αριθμών» ενεργοποιημένο, τα id και το zip 10001 γίνονται αριθμοί, ενώ το 02134 παραμένει κείμενο.

Βήματα

  1. Επικολλήστε το CSV ή σύρετε ένα αρχείο .csv, .tsv, .txt ή .json.
  2. Ελέγξτε το «Η πρώτη γραμμή είναι κεφαλίδα», το Διαχωριστικό και τη «Μετατροπή αριθμών». Επιλέξτε εσοχή JSON 2 κενά, Tab ή Συμπιεσμένο.
  3. Αντιγράψτε το αποτέλεσμα ή κατεβάστε το ως .json.

Κρατήστε τους αριθμούς ως κείμενο

Οι αριθμοί JSON δεν μπορούν να έχουν αρχικά μηδενικά, άρα το 02134 δεν είναι έγκυρος αριθμός JSON. Οι ταχυδρομικοί κώδικες, οι τηλεφωνικοί αριθμοί και οι κωδικοί προϊόντων πρέπει να μένουν κείμενο, αλλιώς χάνεται το μηδέν. Με τη «Μετατροπή αριθμών» ενεργή, το εργαλείο μετατρέπει το 10001 αλλά κρατά το 02134 ως string. Η επιλογή είναι απενεργοποιημένη από προεπιλογή. Μετατρέπει μόνο τιμές με τελεία ως δεκαδικό διαχωριστικό, οπότε το 1,5 σε αρχείο με ερωτηματικά μένει όπως το πληκτρολογήσατε.

Τα μεγάλα αναγνωριστικά θέλουν επίσης προσοχή. Η JavaScript, που εκτελεί το μεγαλύτερο μέρος του JSON στον browser, αποθηκεύει τους αριθμούς ως 64-bit τιμές κινητής υποδιαστολής. Οι ακέραιοι είναι ακριβείς μόνο έως το 9.007.199.254.740.991, δηλαδή δύο υψωμένο στο 53 μείον 1. Ο αριθμός 12345678901234567890 γίνεται 12345678901234567000 όταν τον διαβάζει ένα πρόγραμμα JavaScript. Το εργαλείο γράφει τα ψηφία όπως τα πληκτρολογήσατε, αλλά ένα πρόγραμμα που αναλύει το JSON σε JavaScript θα τα στρογγυλοποιήσει. Κρατήστε τα IDs ως κείμενο. Ο μορφοποιητής JSON διατηρεί επίσης τέτοιους αριθμούς ακριβώς όπως πληκτρολογήθηκαν και λέει πόσους διατήρησε.

Εμφωλιασμένο JSON και επιστροφή σε CSV

Το CSV είναι επίπεδο, ενώ το JSON μπορεί να έχει εμφωλιασμένες δομές. Η μετατροπή JSON σε CSV δημιουργεί μία στήλη για κάθε κλειδί σε όλα τα αντικείμενα, με τη σειρά που εμφανίζεται για πρώτη φορά κάθε κλειδί. Ένα εμφωλιασμένο αντικείμενο ή μια λίστα μπαίνει στο κελί του ως κείμενο JSON, ένα null γίνεται κενό κελί, και τα true και false γράφονται ως λέξεις. Οι γραμμές ενώνονται με CRLF, και ένα πεδίο μπαίνει σε εισαγωγικά μόνο όταν περιέχει διαχωριστή, εισαγωγικό, αλλαγή γραμμής ή κενά στην αρχή ή στο τέλος του.

Το κείμενο που ξεκινά με [ ή { διαβάζεται ως JSON. Το κουμπί με το βέλος αλλάζει κατεύθυνση, με ετικέτα CSV → JSON ή JSON → CSV. Στην κατεύθυνση JSON → CSV, οι επιλογές εξόδου εμφανίζουν μενού Διαχωριστικό και την επιλογή Για Excel.

Η μετατροπή και επιστροφή χάνει πληροφορίες. Το null και το κενό string γίνονται και τα δύο κενό κελί, και η εμφώλιαση δεν επιστρέφει, οπότε κρατήστε το αρχικό JSON αν χρειάζεστε τη δομή του.

Excel, UTF-8 και το byte order mark

Ένα αρχείο CSV είναι bytes, και ο αναγνώστης πρέπει να γνωρίζει την κωδικοποίηση. Το UTF-8 χωρά τα γράμματα με διακριτικά και άλλα αλφάβητα. Ένα byte order mark, τρία bytes στην αρχή του αρχείου, δηλώνει ότι το αρχείο είναι UTF-8. Χωρίς αυτό, ορισμένα προγράμματα υπολογιστικών φύλλων διαβάζουν το αρχείο σε τοπική κωδική σελίδα, και τα γράμματα με διακριτικά μετατρέπονται σε παράξενους χαρακτήρες. Τα υπολογιστικά φύλλα μετατρέπουν συχνά και το 02134 σε 2134 όταν ανοίγουν ένα CSV.

Η επιλογή Για Excel προσθέτει το byte order mark μόνο στο CSV που κατεβάζετε, ποτέ στο αντιγραμμένο κείμενο, και μόνο στην κατεύθυνση JSON → CSV. Ο αναγνώστης αφαιρεί ένα byte order mark από την είσοδο, οπότε ένα αρχείο που το έχει ήδη μετατρέπεται χωρίς σφάλμα.

Ειδικές περιπτώσεις

  • Ανισορροπημένες γραμμές. Με κεφαλίδα ενεργή, μια μικρότερη γραμμή συμπληρώνεται με κενές τιμές, και μια μεγαλύτερη κρατά τις επιπλέον τιμές ως column_N. Το αποτέλεσμα αναφέρει πόσες γραμμές διαφέρουν από την κεφαλίδα.
  • Επαναλαμβανόμενες ή κενές κεφαλίδες. Ένα επαναλαμβανόμενο όνομα παίρνει _2, _3 και ούτω καθεξής, και ένα κενό όνομα γίνεται column_N. Και οι δύο αλλαγές εμποδίζουν δύο κλειδιά να αντικαταστήσουν το ένα το άλλο.
  • Καμπύλα εισαγωγικά. Τα έξυπνα εισαγωγικά από έναν επεξεργαστή κειμένου δεν είναι εισαγωγικά CSV, οπότε ένα πεδίο όπως “Smith, Ann” σπάει στο κόμμα του. Μετατρέψτε τα σε ευθέα με τη διόρθωση επικολλημένου κειμένου ή όπως περιγράφεται στον οδηγό για τα καμπύλα εισαγωγικά.
  • Αλλαγές γραμμής μέσα σε εισαγωγικά. Ένα πεδίο που εκτείνεται σε δύο γραμμές είναι μία εγγραφή, αλλά η Αφαίρεση διπλότυπων γραμμών χωρίζει την είσοδο σε κάθε αλλαγή γραμμής, οπότε θα αντιμετώπιζε τα δύο μισά ως ξεχωριστές γραμμές. Μετατρέψτε σε JSON και συγκρίνετε τα αντικείμενα, ή ελέγξτε με το χέρι. Το εργαλείο παραμένει χρήσιμο για λίστες με μία τιμή ανά γραμμή.
  • Μεγάλα αρχεία. Το πλαίσιο αποτελέσματος δείχνει τους πρώτους 100.000 χαρακτήρες, αλλά το Αντιγραφή και η λήψη περιλαμβάνουν ολόκληρη την έξοδο.
  • Μη έγκυρο JSON. Ο μετατροπέας αναφέρει τη γραμμή και τη στήλη ενός σφάλματος, με έναν δείκτη κάτω από τον χαρακτήρα. Ο μορφοποιητής JSON εξηγεί τα συνηθισμένα λάθη, και ο οδηγός για τα σφάλματα JSON τα καλύπτει πιο αναλυτικά.

Τα αδέσποτα κενά γύρω από τα πεδία, οι κενές γραμμές στη μέση του αρχείου και τα εισαγωγικά που χρησιμοποιούνται ασυνεπώς προκαλούν τα περισσότερα προβλήματα CSV, πριν ακόμη μετρήσει ο διαχωριστής. Καθαρίστε πρώτα το CSV, και μετά μετατρέψτε το.

Μετάφραση από το Αγγλικό πρωτότυπο με τη βοήθεια τεχνητής νοημοσύνης.

Σχόλια

    Δεν υπάρχουν σχόλια ακόμη. Γίνετε οι πρώτοι.

    Η βαθμολογία σας (προαιρετικό)

    Το email σας δεν εμφανίζεται ούτε αποθηκεύεται ποτέ.

    Εξώφυλλο του How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 σελίδες για τα ανθρώπινα, οικονομικά και στρατηγικά πλεονεκτήματα που παραμένουν σπάνια όταν η τεχνητή νοημοσύνη μπορεί να κάνει το μεγαλύτερο μέρος της νοητικής εργασίας.

    $3.84Αγοράστε στο GumroadΣτα αγγλικά