Home » Articole » Articole » Calculatoare » Programare » Python » JSON: Imprimarea unei liste de clasă

JSON: Imprimarea unei liste de clasă

postat în: Python 0

Aici vom încpe să acoperim câteva tehnici comune pentru tratarea datelor JSON. Cel mai adesea, ceea ce faci este să scrii cod Python care parcurge sistematic datele, extragând chirurgical părțile de care ai nevoie pentru analiză. Aceste părți pot fi apoi asamblate în matrice NumPy, Pandas DataFrames sau orice altceva și sondate așa cum sunteți obișnuit.

Să revenim la exemplul de cursuri universitare anterior, afișat aici:

[{'creds':3,
    'instructor':'Davies',
    'meetings':[{'location':{'bldg':'Farmer', 'room':'B6'},
            'time':{'day':'TR', 'time':'12:30pm'}}],
    'num':219,
    'prefix':'DATA',
    'roster':[{'email':'lgaga@umw.edu', 'first':'Lady', 'last':'Gaga'},
            {'email':'trock@umw.edu', 'first':'The', 'last':'Rock'},
            ...,
            ...]
 },
 ...
]

Primul fapt brut de înțeles este că, indiferent de complexitățile sale interne, toată chestia asta este o listă de dicționare. Nu o listă de liste, sau un dicționar de dicționare sau un dicționar de liste, ci: o listă de dicționare. De unde știm asta? Deoarece primul caracter este o paranteză dreaptă („[„), iar al doilea este o acoladă („{„).

Imprimarea unei liste de clasă

Ca prim exemplu de lucru cu acest set de date, să presupunem că am vrut să tipărim pur și simplu numele complete ale tuturor studenților din cel de-al 17-lea curs din această listă. Mai întâi, să încărcăm fișierul .json în Python:

import json

with open("courses.json") as f:
    c = json.load(f)

Aici am numit-o structura cea mai exterioară „c”, care înseamnă „courses”, dar este scurtată, deoarece o vom folosi mult. (Rețineți că c este o listă – o listă foarte lungă și complicată, dar totuși o listă.)

Și apoi trecem la o gândire profundă. Imprimarea tuturor numelor necesită în mod clar o buclă. Dar prin ce anume vrem să trecem în buclă? Răspunsul, după examinarea structurii de mai sus, este: trebuie să găsim valoarea cheii „roster” a celui de-al 17-lea dicționar din lista c. Aceasta, la rândul său, va fi o listă și va conține dicționare, câte unul pentru fiecare elev. (Faceți o pauză înainte de a continua, uitați-vă la conținutul JSON de mai sus și vedeți dacă sunteți de acord cu fiecare cuvânt din acest paragraf.)

Deci, bucla pe care o dorim este cam așa:

for student in c[16]['roster']:
    print("{} {} is in {} {}.".format(student['first'],
        student['last'], c[16]['prefix'], c[16]['num']))

 

Succes. (Nu vă faceți griji dacă nu obțineți această buclă corect de prima dată; de multe ori este nevoie de unele ajustări și perfecționări înainte de a funcționa.) Observați cum funcționează acest cod:

  1. Săpăm destul de adânc în c (care este o listă), găsim al 17-lea element (la indexul 16, desigur), care este un dicționar. Apoi, obținem valoarea cheii „listă” a acelui dicționar. După cum puteți vedea mai sus, valoarea cheii respective este o listă.
  2. De fiecare dată când parcurge bucla, variabila „student” este setată egal cu următorul element din această listă. Și acel element, după cum puteți vedea mai sus, este un dicționar. Dicționarul are două articole de interes: „first” și „last”. Apoi imprimăm valorile acestor două chei, plus prefixul și numărul cursului.(Rețineți că prefixul și numărul cursului provin direct din dicționarul c[16] însuși, în timp ce numele și numele de familie provin din cheile elementelor din lista interioară „roster” pe care o repetăm.)

Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 2: Introduction to Data Science, v. 1.1. Copyright © 2020 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2021 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 2

Business intelligence și analitica în afaceri
Business intelligence și analitica în afaceri

Datele sunt fapte și cifre brute, iar informațiile sunt date semnificative care ar fi utile pentru o persoană sau companie. Business intelligence extrage informații din datele brute prin instrumente precum mineritul datelor, analiza perspectivală, procesarea analitică online etc. Cartea va oferi … Citeşte mai mult

Nu a fost votat 23.85 lei52.53 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Analitica rețelelor sociale
Analitica rețelelor sociale

Analitica rețelelor sociale este un domeniu nou și emergent, pregătit pentru a permite companiilor să își îmbunătățească inițiativele de gestionare a performanței în diferite funcții de afaceri. Indiferent dacă este vorba de măsurarea eficienței campaniilor promoționale, colectarea de informații despre … Citeşte mai mult

Nu a fost votat 19.07 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Rețele de comunicații 5G
Rețele de comunicații 5G

Datorită impactului său așteptat în economie și societate, a cincea generație de telecomunicații mobile (5G) este una dintre cele mai importante inovații ale timpului nostru. Așteptările cresc cu capacitățile de bandă largă ale 5G, accesibile tuturor și peste tot, la … Citeşte mai mult

Nu a fost votat 14.29 lei32.88 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *