Skip to content

Cum să procesezi date JSON în Python

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să procesezi date JSON în Python. We cover key concepts, practical examples, and best practices.

Procesarea datelor JSON în Python se face cu biblioteca json pentru serializare și cu pandas.json_normalize pentru aplatizarea structurilor JSON imbricate în tabele.

The Problem

API-urile moderne returnează aproape întotdeauna date în format JSON, adesea cu structuri imbricate (liste, dicționare în interior). Citirea directă în pandas produce coloane care conțin dicționare, nu valori simple, făcând analiza imposibilă.

The Wrong Way

import pandas as pd

data = [
    {"id": 1, "nume": "Ana", "adresa": {"oras": "București", "strada": "X"}},
    {"id": 2, "nume": "Ion", "adresa": {"oras": "Cluj", "strada": "Y"}}
]

df = pd.DataFrame(data)
print(df)

Output:

   id nume                    adresa
0   1  Ana  {'oras': 'București', 'strada': 'X'}
1   2  Ion       {'oras': 'Cluj', 'strada': 'Y'}

Problemă: Coloana adresa conține dicționare — nu poți accesa oras direct.

The Right Way

import pandas as pd

data = [
    {"id": 1, "nume": "Ana", "adresa": {"oras": "București", "strada": "X"}},
    {"id": 2, "nume": "Ion", "adresa": {"oras": "Cluj", "strada": "Y"}}
]

df = pd.json_normalize(data, sep="_")
print(df)

Output:

   id nume adresa_oras adresa_strada
0   1  Ana   București             X
1   2  Ion        Cluj             Y

Step-by-Step Fix

1. Citește JSON din fișier

import json

with open("date.json", "r", encoding="utf-8") as f:
    data = json.load(f)

2. Normalizează structurile imbricate

df = pd.json_normalize(data, record_path="comenzi", meta=["id", "nume"])

3. Salvează înapoi ca JSON

df.to_json("output.json", orient="records", force_ascii=False)

Prevention Tips

  • Folosește json.load() pentru citire și json.dump() pentru scriere
  • Aplică json_normalize() când JSON-ul conține obiecte în interior
  • Specifică record_path pentru a extrage liste imbricate în rânduri separate

Common Mistakes

  1. pd.DataFrame(data) direct pe JSON imbricat — coloanele conțin dicționare, nu valori
  2. Fără encoding la citire — caractere speciale (ș, ț, ă) devin greșite
  3. Ignorarea record_path — listele imbricate nu se expandează automat
  4. orient="index" în loc de "records" — JSON-ul rezultat e greu de citit
  5. Fără force_ascii=False — caracterele Unicode scapă în \uxxxx

FAQ

### Ce face pd.json_normalize?

Aplatizează structurile JSON imbricate (dicționare în dicționare) în coloane plate, cu nume compuse.

### Cum citesc un JSON lines (.jsonl)?

Folosește pd.read_json("file.jsonl", lines=True) — câte un obiect JSON pe linie.

### Cum export un DataFrame la JSON?

Folosește df.to_json("output.json", orient="records", force_ascii=False).

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu pandas pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro