Python schreibt die Ausgabe in den CSV-Vorgang

Python schreibt die Ausgabe in den CSV-Vorgang

Wie unten dargestellt:

 def test_write(selbst):
 Felder=[]
 Felder.anhängen(Bestellcode)
 mit open(r'./test001.csv', 'a',newline="") als f:
  Schriftsteller = csv.writer(f)
  writer.writerow(Felder)

Definieren Sie eine Liste: Fügen Sie anschließend die zu schreibenden Daten in die Liste ein

a #Daten an die nächste Zeile anhängen

newline='' //Entfernen Sie die Leerzeile in der Mitte jeder Zeile. Wenn sie nicht hinzugefügt wird, entstehen Leerzeichen zwischen den Zeilen.

Neue Zeile hinzufügen

Ohne:

Ergänzung: Verwenden Sie Python, um JSON-Daten in das CSV-Format zu konvertieren

Angenommen, in der JSON-Datei sind folgende Daten gespeichert:

{"Typ": "Punkt", "Link": "http://www.dianping.com/newhotel/22416995", "Koordinaten": [116.37256372996957, 40.39798447055443], "Kategorie": "Wirtschaft", "Name": "Beijing Hetang Villa", "Anzahl": "278", "Adresse": "Ansi Road, Huanghuacheng Village, Huairou District, Beijing", "Preis": "380"}
{"Typ": "Punkt", "Link": "http://www.dianping.com/newhotel/19717653", "Koordinaten": [116.56881588256466, 40.43310967948417], "Kategorie": "Wirtschaft", "Name": "Mutianyu Great Wall Yushifu Country Hotel", "Anzahl": "89", "Adresse": "Weidian Village, Bohai Town, Huairou District, Peking (3 Kilometer unterhalb der Mutianyu Great Wall, in der Nähe der Huaihuang Road)", "Preis": "258"}
{"Typ": "Punkt", "Link": "http://www.dianping.com/newhotel/58365289", "Koordinaten": [116.62874974822378, 40.45610264855833], "Kategorie": "Wirtschaft", "Name": "Beijing Mitaoer Parent-child Inn", "Anzahl": "119", "Adresse": "Nr. 11 Xiaguandi, Shentangyu Scenic Area, Bezirk Huairou, Peking", "Preis": "549"}

Jetzt müssen wir die obigen Daten im CSV-Format speichern, wobei die Schlüssel des Wörterbuchs die Attributnamen in CSV sind und die Werte des Wörterbuchs die Werte sind, die den Attributen in CSV entsprechen.

Wenn Sie nur CSV entsprechend den JSON-Schlüsseln generieren müssen, ist der Vorgang relativ einfach. Befolgen Sie einfach die folgende Methode:

#-*-Kodierung:utf-8-*-
CSV importieren
JSON importieren
System importieren
Codecs importieren
def trans(Pfad):
  jsonData = codecs.open(Pfad+'.json', 'r', 'utf-8')
  # csvfile = open(Pfad+'.csv', 'w') # Wenn Sie hier schreiben, enthält die geschriebene Datei leere Zeilen. # csvfile = open(Pfad+'.csv', 'wb') # python2 unter csvfile = open(Pfad+'.csv', 'w', newline='') # python3 unter Writer = csv.writer(csvfile, delimiter='\t', quoting=csv.QUOTE_ALL)
  Flag = Wahr
  für Zeile in jsonData:
    dic = json.loads(Zeile[0:-1])
    if-Flag:
      # Holen Sie sich die Attributliste keys = list(dic.keys())
      drucken (Tasten)
      writer.writerow(keys) # Schreibe die Attributliste in CSV flag = False
    # Lies jede Zeile der JSON-Daten und schreibe die Wertedaten zeilenweise in CSV writer.writerow(list(dic.values()))
  jsonData.schließen()
  csvfile.schließen()
wenn __name__ == '__main__':
  path=str(sys.argv[1]) # Den Pfadparameter abrufen print (path)
  trans(Pfad)

Führen Sie es unter Python3 aus und geben Sie die Befehlszeile ein

python C:\Benutzer\MaMQ\Dokumente\jsonToCsv.py C:\Benutzer\MaMQ\Dokumente\data\geoFood

Der dritte Parameter ist der Pfad und Name der zu konvertierenden Datei, wobei das Suffix gelöscht wird. Nach dem Ausführen der Datei können Sie die konvertierte CSV-Datei abrufen.

Wenn Sie das Schlüsselfeld jedes Wörterbuchs in der JSON-Datei ändern müssen, z. B. die Längen- und Breitengraddaten in der Koordinate im obigen Wörterbuch herausnehmen und als x- und y-Daten speichern müssen, können Sie die folgende Methode befolgen (mit dieser Methode können Sie auch die Reihenfolge anpassen, in der jedes Attribut angezeigt wird, was besser ist):

CSV importieren
JSON importieren
System importieren
Codecs importieren
def trans(Pfad):
  jsonData = codecs.open(Pfad+'.json', 'r', 'utf-8')
  # csvfile = open(Pfad+'.csv', 'w') # Wenn Sie hier schreiben, enthält die geschriebene Datei leere Zeilen. # csvfile = open(Pfad+'.csv', 'wb') # python2 unter csvfile = open(Pfad+'.csv', 'w', newline='') # python3 unter Writer = csv.writer(csvfile, delimiter='\t', quoting=csv.QUOTE_ALL)
  Schlüssel=['id', 'Name', 'Kategorie', 'Preis', 'Anzahl', 'Typ', 'Adresse', 'Link', 'x', 'y']
  writer.writerow(Schlüssel)
  ich = 1
  für dic in jsonData:
    dic = json.loads(dic[0:-1])
    x = dic['Koordinaten'][0]
    y = dic['Koordinaten'][1]
    writer.writerow([str(i),dic['Name'],dic['Kategorie'],dic['Preis'],dic['Anzahl'],dic['Typ'],dic['Adresse'],dic['Link'],x,y])
    ich += 1
  jsonData.schließen()
  csvfile.schließen()
wenn __name__ == '__main__':
  Pfad = str(sys.argv[1])
  drucken (Pfad)
  trans(Pfad)

Die Vorgehensweise ist die gleiche wie oben.

Die JSON-Datei enthält die Daten, die ich von Dianping.com gecrawlt habe, und das Speicherformat ist UTF-8. Es wird empfohlen, zum Lesen von JSON-Daten das Codecs-Paket zu verwenden, und Sie können die Kodierungsmethode angeben.

jsonData = codecs.open(Pfad + „.json“, „r“, Kodierung=„utf-8“)

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • So schreiben Sie Daten mit Python in eine CSV-Datei
  • 3 Möglichkeiten, Daten in Python in CSV- oder XLSX-Dateien zu schreiben
  • So geben Sie den Klassifizierungsbericht in Python in eine CSV-Datei aus

<<:  Quickjs kapselt JavaScript-Sandbox-Details

>>:  Abkürzungszeichen und Akronymzeichen

Artikel empfehlen

Entdecken Sie, wie Ihnen eine LED den Einstieg in den Linux-Kernel erleichtert

Inhaltsverzeichnis Vorwort LED-Trigger Entdecken ...

JS verwendet Map, um doppelte Arrays zu integrieren

Inhaltsverzeichnis Vorwort Daten simulieren Zusam...

So verwenden Sie die Vue-Cache-Funktion

Inhaltsverzeichnis Cache-Funktion in vue2 Transfo...

MySQL-Datenbankindizes und -Transaktionen

Inhaltsverzeichnis 1. Inhaltsverzeichnis 1.1 Konz...

Lösung für die Ineffektivität der flexiblen Layoutbreite in CSS3

In Projekten wird häufig das zweispaltige Layout ...

js, um einen einfachen Bild-Drag-Effekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Zusammenfassung der Wissenspunkte des Datenbankindex

Inhaltsverzeichnis Erster Blick-Index Das Konzept...

CSS3-Filtercode zum Erreichen des Grau- oder Schwarzmodus auf Webseiten

Frontend css3.filter kann nicht nur den Graueffek...

Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

Inhaltsverzeichnis MySQLs current_timestamp-Falle...