# Datenbank im json Format einlesen, aber wie?



## -RedMoon- (7. Juli 2019)

Hallo zusammen,
ich bin seit einigen Jahren auf einer Filmwebseite unterwegs. Dort habe ich jede Menge Filmkritiken und Kommentare geschrieben. Nun möchte ich meine dortigen Kritiken auf eine andere Seite umziehen und habe mir meinen gesamten Datenbetsand geben lassen. Dies ist allerdings im json Format. 
Ich habe hier als jede Menge json files. In einem, stehen die Kritiken, in dem anderen die Filme. Die Verknüpfung untereinander erfolgt mit einem eindeutigen Bezeichner (ID). Es ist im Prinzip ein Datenbankmodell mit Beziehungen zueinander. Access habe ich, konnte aber damit nichts anfangen.

Weiss jemand, wie ich diese Daten in ein einigermaßen lesbares Format übertragen kann?


----------



## Teacup (8. Juli 2019)

Access hat IIRC keinen json Parser.
Die Frage ist auch eher was "lesbar" bedeutet. Du willst ja auf eine andere Website umziehen, möchtest Du die ganzen Sachen dann wieder von Hand einpflegen oder gibt es dort einen Importer, der eine bestimmte Formatierung erwartet?

Wenn Du das aber wirklich in Access einbinden möchtest, müsste man in Access eine eigene Importfunktion schreiben, die das entweder direkt in die DB einpflegt oder zunächst in eine passende XML-Struktur umwandelt.


----------



## -RedMoon- (8. Juli 2019)

Ich pflege alles wieder von Hand ein. Ich möchte lediglich irgendwie alle Dateien in einer zusammenbringen


----------



## Teacup (8. Juli 2019)

Kannst Dir ja mal das hier ansehen:
Attention Required! | Cloudflare

Je nachdem was da rauskommt, könntest Du das Ergebnis ja z.B. in Excel packen und da zusammenfügen.


----------



## Arkintosz (9. Juli 2019)

Verarbeitung von JSON geht recht einfach mit Python 3:

```
user@PC:~> wget --output-document=headers.json http://headers.jsontest.com/
--2019-07-09 21:28:15--  http://headers.jsontest.com/
Auflösen des Hostnamens headers.jsontest.com (headers.jsontest.com)… 216.58.223.243, 2c0f:fb50:4003:802::2013
Verbindungsaufbau zu headers.jsontest.com (headers.jsontest.com)|216.58.223.243|:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 186 [application/json]
Wird in »headers.json« gespeichert.

headers.json                                         100%[======================================================================================================================>]     186  --.-KB/s    in 0s      

2019-07-09 21:28:15 (5,35 MB/s) - »headers.json« gespeichert [186/186]

user@PC:~> python3
Python 3.6.5 (default, Mar 31 2018, 19:45:04) [GCC] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> with open("headers.json") as file:
...         headers = json.load(file)
...  
>>> headers.keys()
dict_keys(['X-Cloud-Trace-Context', 'Accept', 'User-Agent', 'Host'])
>>> headers['User-Agent']
'Wget/1.19.5 (linux-gnu)'
```

Und hier nochmal nur der Python 3-Code:

```
# JSON-Library importieren
import json

# Datei als Variable file öffnen
with open("headers.json") as file:
        # JSON-Format aus Datei in Wörterbuch umwandeln
        headers = json.load(file)
```

Wenn man das Ding als Dictionary hat, müsste man mit Python nur noch eine Verbindung zur Datenbank herstellen und die Daten korrekt eintragen.


----------



## -RedMoon- (9. Juli 2019)

ach ich denke ich wandle das in xml um und mache es mit Hand...werde ich viel schneller sein


----------



## Arkintosz (9. Juli 2019)

-RedMoon- schrieb:


> werde ich viel schneller sein


Das kann ich natürlich nicht beurteilen. Könnte sein 
Da Du im Programmierforum gefragt hast, wäre es aber evtl. auch interessant, bei der Gelegenheit was neues zu lernen.

Aus meiner Sicht klingt es nicht gerade schwer und ich schätze, dass ich deutlich schneller wäre, wenn ich es code. Aber ich weiß auch nicht, wie viele Einträge das sind... Wenn das mehr als 20-30 wären, würde ich das nicht per Hand eintragen wollen - auch, weil die eintönige Arbeit nerviger ist, als ein Programm zu schreiben


----------



## -RedMoon- (10. Juli 2019)

ja, einige mehr sind es schon, so 500-600 denke ich.

Mit diesen Neumodischen Sprachen kenne ich mich nicht aus, ich habe noch klassisch Assembler, C und später C++ gelernt, da wird es schwer mit Python. Aber ich kanns dir ja zukommen lassen


----------



## Arkintosz (10. Juli 2019)

-RedMoon- schrieb:


> ja, einige mehr sind es schon, so 500-600 denke ich.


Na dann, viel Spaß.



-RedMoon- schrieb:


> Mit diesen Neumodischen Sprachen kenne ich mich nicht aus, ich habe noch klassisch Assembler, C und später C++ gelernt, da wird es schwer mit Python.


Python gibt es seit 1991. Also wenn das für Dich neumodisch ist, dann musst Du wohl in den 80ern Programmierung gelernt haben 
Ich mag die Sprache auch nicht, aber ich benutze sie hauptsächlich für Wegwerf-Code der lahm und hässlich sein darf, aber mich schnell zu meinem Ziel führt. Kann man auch für Grobkonzepte verwenden.



-RedMoon- schrieb:


> Aber ich kanns dir ja zukommen lassen


So viel Zeit habe ich dann auch nicht


----------



## -RedMoon- (10. Juli 2019)

Arkintosz schrieb:


> Python gibt es seit 1991. Also wenn das für Dich neumodisch ist, dann musst Du wohl in den 80ern Programmierung gelernt haben



kommt schon hin, bin 73er BJ, in meiner Ausbildung Ende der 80er gabs Pascal. Erst im Studium habe ich C und C++ gelernt und habe eher hardwarenah programmiert, komme ja aus der Elektrotechnik und nicht aus der Anwendungsentwicklung  
Mit neumodisch meine ich Sprachen, die nicht unbedingt einem vorbestimmten Paradigma folgen müssen, wo man nicht jeden Datentyp explizit deklarieren muss, keine Klammern benötigt, die Syntax simpel ist etc.... wie du ja sagst, der Code kann hässlich sein und es funktioniert trotzdem irgendwie. Ich nenne diese Sprachen auch "Whats-App-Code", da sie  sich lesen wie eine Whatsapp Unterhaltung von Jugendlichen mit beschränktem Wortschatz  

Vielleicht sollte ich mir Python doch mal genauer ansehen.


----------



## fotoman (10. Juli 2019)

Bevor Du alles manuell umwandelst, kann Du auch sowas nutzen und hoffen, dass das uralte Access wenigstens CSV importieren kann:
JSON To CSV Converter
Mit etwas Suche gibt es sicherlich auch einen Offline-Konverter.

Die CSVs dann halt ein zwei Excel-/Access-Tabellen importieren und daraus bei Bedarf über die ID eine einzige Tabelle erzeugen.

Alternativ könnte man auch den kostenlosen SQL Server Express von MS nehmen und direkt die JSON-Files importieren
Importieren von JSON-Dokumenten in SQL Server - SQL Server | Microsoft Docs
bzw.
Arbeiten mit JSON-Daten in SQL Server - SQL Server | Microsoft Docs


----------

