Wie liest man eine JSON-Datei in Python?

Hallo zusammen!!! Heute werden wir versuchen zu verstehen: Was ist JSON und wie liest man eine JSON-Datei in Python?

Zunächst einmal ein paar Fakten:

1. JSON steht für JavaScript Object Notation. Es ist ein Datenaustauschformat, mit dem man Daten von Client zu Server und von Server zu Client übertragen kann.
2. Es wird auch für die Kommunikation zwischen Anwendungen verwendet
3. JSON ist äußerst wichtig für die Anwendungsentwicklung, insbesondere wenn Sie mit den Rest-APIs arbeiten
4. Es basiert auf einer Untermenge von Java Script
5. Es ist leicht zu lesen und zu schreiben
Wir haben die Theorie gelernt, jetzt wollen wir die Grundregeln der Syntax bei der Arbeit mit dem JSON-Format kennenlernen:
1. JSON verwendet Schlüssel-Werte-Paare – {„Name“: „Vasya“}
2. JSON verwendet doppelte Anführungszeichen um den Schlüssel
Normalerweise wird in Tutorials über das Team berichtet, mit Angaben zu Gehalt, Standort und all diesen Dingen. Wir wollen nicht mit der Tradition brechen und stellen uns ein Team vor, das aus 5 Mitarbeitern besteht: Vasya, Sasha, Petya, Dasha, Masha. Jeder Mitarbeiter bekommt ein bestimmtes Gehalt, was bedeutet, dass wir unsere eigene JSON-Datei erstellen können (nennen wir sie personal.json), die eine Liste der Mitarbeiter + ihr Gehalt enthält:

{
  \{ "personal\": [
    {
      \{ "name\": \{ "Vasya",
      \{"salary\": 5000
    },
    {
      \"Name\": \"Sasha\",
      {\"salary\": 6000
    },
    {
      \"Name\": \"Petya\",
      {\"Gehalt\": 9000
    },
    {
      \"Name\": \"Dascha\",
      {\"Gehalt\": 10.000
    },
    {
      \"Name\": \"Masha\",
      {\"Gehalt\": 11000
    }
  ]
}

wie Sie sehen, ist das Namensfeld für den Namen des Mitarbeiters zuständig, das Gehaltsfeld für die Gehaltsstufe, aber der Name dieses Datenfeldes ist persönlich (ganz oben angegeben). Wir haben die Datendatei, aber wie können wir sie lesen? Schauen wir uns dazu den folgenden Code an:

import json #Verbinden Sie die Bibliothek, die für die Arbeit mit JSON zuständig ist

with open('personal.json', 'r', encoding='utf-8′) as f: #Öffne die Datei personal.json und gib ihre Kodierung an - so können wir mit russischen Buchstaben arbeiten
text = json.load(f) #Füllen Sie die Variable mit allem, was als Ergebnis der Arbeit der Bibliothek erhalten wurde
print(text) #das Ergebnis auf dem Bildschirm ausgeben

Wenn Sie den Code ausführen, erhalten Sie auf dem Bildschirm etwa folgendes Ergebnis:
{‚personal‘: [{‚Name‘: ‚Vasya‘, ‚Gehalt‘: 5000}, {‚Name‘: ‚Sasha‘, ‚Gehalt‘: 6000}, {‚Name‘: ‚Petya‘, ‚Gehalt‘: 9000}, {‚Name‘: ‚Dasha‘, ‚Gehalt‘: 10000}, {‚Name‘: ‚Masha‘, ‚Gehalt‘: 11000}]}

Stimmt – es ist äußerst schwierig, solche Daten zu lesen und zu analysieren. Um die Arbeit in einem solchen Fall zu vereinfachen, verwenden wir oft die pprint-Bibliothek, die die Ausgabe in solchen Fällen zähmt. In diesem Fall würde unser Code wie folgt aussehen:

import json #Verbindungsbibliothek für die Arbeit mit json
from pprint import pprint #Verbinden Sie pprint, um die Textausgabe zu verschönern
 
with open({\'personal.json\', {\'r\', encoding=\'utf-8\') as f: #Datendatei öffnen
    text = json.load(f) # alles in eine Variable laden
    pprint(text) #das Ergebnis auf dem Bildschirm ausgeben

Im Ergebnis sieht die Ausgabe wie folgt aus:

{\'personal\': [{\'Name\': {\'Vasya\', {\'salary\': 5000},
              {\'name\': {\'Sasha', {\'salary': 6000},
              {\'name\': \'Petya', {\'salary': 9000},
              {\'name\': {\'Name\': \{\'Dascha', {\'Gehalt': 10.000},
              {\'name\': {\'Masha\', {\'Gehalt': 11000}]}

Und nun geben wir die Daten in ihrer reinen Form aus – Name des Mitarbeiters + Gehalt. Dann sieht der Code wie folgt aus:

import json #Verbinden der Bibliothek
 
with open({\'personal.json\', \'r\', encoding=\'utf-8\') as f: #Datei öffnen
    text = json.load(f) #Lade alles aus der Datei in eine Variable
    print(text) #das Ergebnis auf dem Bildschirm ausgeben
 
for txt in text[\'personal\']: #erstellt eine Schleife, die Zeile für Zeile durchläuft
    print(txt[\'name\'], \':\', txt[\'gehalt\']) #und druckt alles, was im Wert der Schlüssel für Name und Gehalt steht, auf den Bildschirm

Eigentlich … könnte man sagen, das ist genug für heute, aber am Ende werde ich Ihnen sagen, wie man Strings anstelle von json-Dateien lesen kann. Wir werden zum Beispiel einen json-String haben:
stroke = ‚{„food“: „banana“}‘
Wenn wir versuchen, ihn auf dem Bildschirm anzuzeigen, erhalten wir:
{„food“: „banana“} – was im Allgemeinen den Punkt trifft, aber nicht den Regeln entspricht 🙂 Um den json-String auszugeben, verwenden wir die Funktion loads. In Codeform sieht sie wie folgt aus:

import json #Bibliothek für die Arbeit mit json einbinden
stroke = \'{\"food\": \{"banana\"}"' #json string
stroke_s = json.loads(stroke) #fill the variable with the result of reading the json string
print(stroke_s) #das Ergebnis auf dem Bildschirm ausgeben

Das ist alles 🙂 Danke für eure Aufmerksamkeit! Und ja – wir werden später verstehen, wie man in eine json-Datei schreibt 🙂
Noch Fragen? Frag per Mail, oder schreibe an Telegram 🙂 🙂 🙂

Und übrigens, hier ist das Video:

Woran erkennt man, wo sich ein Telegram-Bot befindet?

Hallo zusammen! Falls ihr einen Bot für Telegram schreibt – manchmal ist es notwendig zu bestimmen, wo genau sich der Bot befindet (Gruppe, privater Chat und so weiter). Wie implementiert man das?

Eigentlich – ist alles ganz einfach. Der Text der Nachricht, die der Bot erhält, zeigt an, woher die Nachricht stammt. Schauen Sie einfach in chat.type nach – dort erfahren Sie, wo sich die Nachricht befindet:
– Privat
– Gruppe
– Supergruppe
– Kanal

Ich hoffe, das hat deine Situation ein wenig erleichtert 🙂 🙂 Ich hoffe, das hat deine Situation ein wenig erleichtert
Wie immer – schicke eine E-Mail an E-Mail, wenn du Fragen hast.

Diese Meldung konnte aufgrund einer Urheberrechtsverletzung nicht auf Ihrem Gerät angezeigt werden

Hallo zusammen! Heute werden wir lernen, wie man die Nachricht \“Diese Nachricht konnte aufgrund einer Urheberrechtsverletzung nicht auf Ihrem Gerät angezeigt werden\“ loswerden kann, die man in Telegram sehen kann, wenn man versucht, auf urheberrechtlich geschützte Daten zuzugreifen.

Ein bisschen Geschichte… Eigentlich ist der Grund für diesen Beitrag ganz einfach – ich liebe es zu lesen. Ich lese viel und ständig, und ich habe nicht die Absicht, diese Gewohnheit aufzugeben. Viele Jahre lang habe ich mit elektronischen Geräten gelesen (mein erstes Lesegerät war Casio PV-S460 – man bedenke – vor fast 20 Jahren… 🙂 ). Seitdem haben sich die Geräte verändert, aber ich lese, lese und werde weiter lesen!

Websites wie Flibusta und später der Telegram-Bot, der mir bei der Suche nach Büchern half, waren eine große Hilfe für mein Lesen. Aber die Urheberrechtsinhaber schlossen sich uns in Telegram an, so dass der Bot vor ein paar Jahren auf mobilen Geräten nicht mehr funktionierte, aber auf der Desktop-Version weiterhin funktionierte. Es funktionierte so: Auf dem Computer suchen wir im Warenkorb nach einem Buch, laden es herunter, laden es auf eine File-Sharing-Website hoch, laden es auf unsere Telefone herunter, lesen und genießen es.

Einverstanden – nicht sehr bequem. Deshalb – falls du versuchst, etwas in Telegram herunterzuladen, das nicht so sehr unter Urheberrechtsschutz steht, und eine Fehlermeldung erhältst \“Diese Nachricht konnte auf deinem Gerät aufgrund von Urheberrechtsverletzungen nicht angezeigt werden\“ – mach einfach: füge einen Bot zu deinem Chatraum hinzu, mach ihn zum Admin, und …. Das Wunder geschieht! Alles ist verfügbar und alles wird heruntergeladen 😉

Du hast bis hierher gelesen und willst nun wissen, wie du eine solche Gruppe erstellen kannst? Lies weiter 🙂
1. Erstellen Sie eine Gruppe (auf Ihrem Computer oder einer mobilen App – das spielt keine Rolle).
2. Füge den gewünschten Bot zur Gruppe hinzu.
3. Gewähren Sie dem Bot Administratorrechte. WICHTIG: Wir gewähren auch das Recht, Administratoren hinzuzufügen.
4. Geben Sie im Gruppenchat ein: /start – dadurch wird der Bot in den Arbeitsmodus versetzt.
5. Viel Spaß!

Das war’s schon 🙂 Vielen Dank für deine Aufmerksamkeit! Wenn Sie Fragen haben, schreiben Sie bitte an email😉

Home Hosting – persönliche Erfahrungen, Teil 1.

Hallo zusammen. Mein Blog ist schon mehr als zehn Jahre alt. Ich führe (führte 🙂 ) ihn äußerst unregelmäßig, aber im Allgemeinen erreichte die tägliche Besucherzahl etwa 500 – 700 Personen. Alles war fast in Ordnung, aber irgendwann fragte ich mich: was zahle ich monatlich?

Nun, es ist klar, 24/7-Zugang, alles läuft, aber zur gleichen Zeit – Grenzen, Einschränkungen (versuchen Sie, den gleichen Telegram-Bot laufen zu lassen – es ist eine ganze Geschichte) …. Und da der Blog kein Geld einbrachte und ich mir keine solchen Ziele gesetzt hatte, dachte ich langsam über Home-Hosting auf einem Mini-Computer nach. Ziemlich langsam. Völlig in Ruhe. Bis sich irgendwann herausstellte, dass ich die automatische Zahlung für die Erneuerung des Hostings verpasst hatte (die Karte, an die alles gebunden war, hat ihre Existenz beendet), ich es vergessen hatte, GoDaddy mich irgendwie nicht daran erinnert hatte (oder ich die Erinnerung verpasst hatte, was durchaus möglich ist), und am Ende – als ich zur Vernunft kam – alle Backups und die Website gelöscht waren.

Bingo, was soll ich sagen? (Ich habe übrigens https://web.archive.org/ einige meiner Blog-Beiträge gefunden – ich werde sie nach Möglichkeit wiederherstellen. Nochmals – es scheint, dass auf einigen der Scheiben eine alte (zwei Jahre, wie veraltet) Kopie der Website gespeichert, so dass Sie vielleicht etwas und mehr wiederherstellen können).

Ich musste über Home-Hosting in einer beschleunigten Weise zu denken. Dies wurde übrigens auch von meinem Wunsch beeinflusst, mein Zuhause mit Home Assistant intelligenter zu machen, wofür ich zuvor einen Minicomputer auf Aliexpress gekauft hatte. Ich musste einen weiteren Minicomputer kaufen (ich werde alle Links etwas später einstellen), und …. fortsetzung folgt später 🙂

Bestimmung der Entfernung zwischen zwei Punkten auf der Karte anhand von GPS-Koordinaten

Hallo zusammen! Gestern stand ich vor dem Problem, die Entfernung zwischen zwei Punkten auf der Karte mit Hilfe von GPS-Koordinaten zu bestimmen. D.h. wir haben die Anfangskoordinaten eines Punktes, wir haben die Koordinaten des Punktes, zu dem wir die Entfernung bestimmen müssen – aber wie macht man das?

Die Haversinus-Formel kommt zur Rettung (ich verbürge mich nicht für die Richtigkeit des Namens – in verschiedenen Quellen wird diese Formel mit unterschiedlichen Bildern bezeichnet). Eigentlich will ich nicht auf die Theorie eingehen – ich gebe Ihnen unten einen funktionierenden Code in Python, vielleicht finden Sie ihn nützlich. Und ja – ich behaupte nicht, dass der Code originell ist – er ist kulturell aus einem Forum geklaut (warum das Rad neu erfinden, oder?).

from math import radians, cos, sin, asin, sqrt, atan2
lat1 = anfänglicher Breitengrad
lon1 = anfängliche geographische Länge
lat2 = endgültige geographische Breite
lon2 = endgültige geographische Länge
 
lat1, lon1, lat2, lon2 = map(radians, [lat1, lon1, lat2, lon2])
print(lat1, lon1, lat2, lon2)
# Haversinus-Formel
dlon = abs(lon2 - lon1)
dlat = abs(lat2 - lat1)
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * atan2(sqrt(a), sqrt(1-a))
r = 6371 #Bestimmen Sie, ob die Entfernung in Kilometern angegeben werden soll. Wenn wir in Meilen zählen müssen, geben Sie an: 3956
print(c * r)

Wie immer – wenn Sie Fragen haben, schreiben Sie bitte an email.

Der Film Gemini von 1988

Familienabend, in dessen Rahmen wir beschlossen, etwas auf Netflix zu schauen. Ich war sehr überrascht, als ich den Film Gemini aus dem Jahr 1988 im Empfehlungs-Feed sah. Ja, der Film mit Danny DeVito und Arnold Schwarzenegger. Es ist eine großartige Familienkomödie, trotz ihres Alters. Und wenn man ihn mit dem modernen Kino vergleicht (was mich oft genug frustriert), ist Gemini buchstäblich ein Meisterwerk.

Sie haben ihn nicht gesehen? Ich empfehle ihn! Haben Sie ihn schon gesehen? Schauen Sie ihn sich noch einmal an 🙂

Bohrschablone für Untersteckdosen mit den eigenen Händen: schnell und präzise

Ich bin komplett aus dem Online-Leben raus, weil ich komplett mit Renovierung beschäftigt bin 🙂 Und – ich stieß auf so ein unsinniges Problem: beim Bohren von Unterdosen habe ich absolut keine Möglichkeit, die Löcher gleichmäßig und ohne Verzerrungen zu machen. Das gilt vor allem für Gipskartonplatten und deutsche Normen: der Durchmesser der Untermuffe – 67 mm, und der Achsabstand zwischen den Muffen – 71 mm.

In meinem Kopf kam gestern eine einfache Idee (im Allgemeinen, aus irgendeinem Grund, einfache und funktionierende Gedanken in meinem Kopf kommen sehr selten, und oft – nachdem Sie bereits völlig müde von der Lösung eines einfachen Problems sind) – 3D-gedruckte Schablone für das Bohren (der Drucker ist zu Hause, also warum sollte er untätig stehen?). Ich habe eine in ein paar Minuten gemacht und möchte die Ergebnisse meiner Arbeit teilen (download stl file).

Was die Vorlage macht
Meine Vorlage ist ein minimaler Balken mit Löchern, ohne zusätzliche Details. Sie ermöglicht es Ihnen:
– Präzises Bohren von Steckdosenmitten
– Zeit zu sparen, wenn Sie mehrere Steckdosen hintereinander anbringen (in meinem Fall drei auf einmal)

Merkmale der Konstruktion
– Anzahl der Steckdosen: 3 (aber leicht zu wechseln)
– Zentrierbohrungen: Ø6 mm
– Achsabstand: 71 mm

Stegdicke: 8 mm, Breite 22 mm – ideal für den Druck auf jedem FDM-Drucker

Wie zu verwenden
1. Legen Sie die Schablone an die Wand.
2. Halten Sie eine Wasserwaage gegen den Anschlag – der Horizont ist sofort sichtbar.
3. Bohren Sie die mittleren Löcher.
4. Entfernen Sie die Schablone und verwenden Sie für das letzte Loch einen Ø68 mm Bohrer.
5. Viel Spaß 🙂

Das Ergebnis: gerade Löcher ohne Versatz, die ideal für Steckdosen sind.

3D-Druck
– Werkstoff: PLA oder PETG
– Flachdruck, 0,2 mm Schicht
– Füllung 25-30%, Umfänge 4
– Keine Stützen erforderlich

Ich hoffe, diese Vorlage hilft Ihnen zumindest ein wenig dabei, den Stress zu reduzieren 🙂 Wie immer – wenn Sie Fragen haben, können Sie mir gerne eine E-Mail schicken 🙂