kostenloser Webspace werbefrei: lima-city


Grösse von JSON Datei reduzieren in Python

lima-cityForumProgrammiersprachenPython

  1. Autor dieses Themas

    otisoft

    otisoft hat kostenlosen Webspace.

    Hi,

    ich habe eine JSON Datei, deren Grösse ich reduzieren möchte (ca. 74 MB gross). Der Inhalt der Datei sieht etwa so aus:

    [
        [
            "blablabla",
            "blablablablablablablabla",
            "blablablabla",
            "blablablablabla",
            "blablablabla",
            "blablablablablablablablablablablablablablablablablablablablablablablablablablablabla",
            "blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla",
            "blablablablablablablablablablablabla"
        ],
        [
            "blablabla",
            "blablablablablablablabla",
            "blablablabla",
            "blablablablabla",
            "blablablabla",
            "blablablablablablablablablablablablablablablablablablablablablablablablablablablabla",
            "blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla",
            "blablablablablablablablablablablabla"
        ], .......


    Das soll auf

    [["blablabla","blablablablablablablabla","blablablabla","blablablablabla","blablablabla","blablablablablablablablablablablablablablablablablablablablablablablablablablablabla","blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla","blablablablablablablablablablablabla"],


    reduziert werden. Nebenbei die Anzahl solcher Einträge bewegt sich im Bereich von 14.000!

    Wie ist das oben genannte in Python möglich?

    Danke.
    otisoft
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. import json
    jsonString = ...json-string...
    parsed = json.loads(jsonString)
    minifiedJsonString = json.dumps(parsed, separators=(',', ':'))


    Ist wohl die schnellste und einfachste Methode.
    Du kannst auch andere Wege schauen, wie explizit den Text zu prüfen, aber das steigt in Komplexität, und so ist alles für dich getan.
    Ob das bei den Einträgen noch Speichereffizient ist weiß ich jedoch nicht, weil meineswissens Python da gerne mit Speicher schleudert. Müsst man mal testen.

    Beitrag zuletzt geändert: 13.11.2016 11:32:41 von ggamee
  4. Noch effizienter wäre wahrscheinlich einfach die JSON Datei zu zippen solange du sie nicht lesen musst: https://docs.python.org/3/library/zipfile.html

    Könnte aber auch einiges an Arbeitsspeicher fressen.
  5. Autor dieses Themas

    otisoft

    otisoft hat kostenlosen Webspace.

    Letzteres ist zwar eine Idee, macht aber für meinen Fall nur wenig Sinn, da die Datei später gelesen werden muss. Mir ist gerade eingefallen, dass die Datei eigentlich gar nicht gepackt werden müsste, wenn mir klar wäre, wie ich mit Python das folgende tue:

    An MySQL Server anmelden -> JSON Datei lesen -> Jeden Datensatz in MySQL Datenbank schreiben -> Verbindung trennen
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    otisoft schrieb:
    An MySQL Server anmelden -> JSON Datei lesen -> Jeden Datensatz in MySQL Datenbank schreiben -> Verbindung trennen
    Schau dir das Modul MySQLdb (Benutzung: PEP-0249) an, das wird dir dabei helfen. Funktionsweise: Verbindung aufbauen, Prepared Statement erstellen, für jeden Datensatz mit Daten füllen und ausführen, und anschließend die Verbindung wieder schließen.

    Beitrag zuletzt geändert: 15.11.2016 1:40:10 von hackyourlife
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!