Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengubah Data JSON ke Objek Python untuk Penyimpanan Pangkalan Data?

Bagaimana untuk Mengubah Data JSON ke Objek Python untuk Penyimpanan Pangkalan Data?

Susan Sarandon
Susan Sarandonasal
2024-11-08 08:14:02624semak imbas

How to Transform JSON Data into Python Objects for Database Storage?

Menukar Data JSON kepada Objek Python untuk Storan Pangkalan Data

Senario: Aplikasi Django menerima data JSON daripada API Facebook yang perlu disimpan dalam pangkalan data. Aplikasi pada masa ini mengendalikan objek data mudah menggunakan Paparan tersuai, tetapi bergelut dengan struktur data yang kompleks.

Soalan: Bagaimanakah data JSON boleh diubah menjadi objek Python untuk penyimpanan dan manipulasi pangkalan data yang lebih mudah?

Penyelesaian: Penghuraian JSON dengan Struktur Data Lanjutan

Untuk menukar data JSON kepada Python objek, seseorang boleh menggunakan struktur data khusus seperti SimpleNamespace dan namedtuple. Struktur ini membenarkan atribut dicipta secara dinamik berdasarkan kekunci data JSON.

Dalam Python3, SimpleNamespace boleh digunakan dengan object_hook dalam json.loads:

import json
from types import SimpleNamespace

data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}'

# Parse JSON into an object with attributes corresponding to dict keys.
x = json.loads(data, object_hook=lambda d: SimpleNamespace(**d))
print(x.name, x.hometown.name, x.hometown.id)

Dalam Python2, namedtuple boleh digunakan sama:

import json
from collections import namedtuple

data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}'

# Parse JSON into an object with attributes corresponding to dict keys.
x = json.loads(data, object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
print x.name, x.hometown.name, x.hometown.id

Sebagai alternatif, fungsi boleh guna semula boleh ditakrifkan untuk memudahkan prosesnya:

def _json_object_hook(d): return namedtuple('X', d.keys())(*d.values())
def json2obj(data): return json.loads(data, object_hook=_json_object_hook)

x = json2obj(data)

Dengan menggunakan teknik ini, data JSON yang kompleks boleh ditukar dengan cekap kepada objek Python, menjadikannya mudah untuk menyimpan dan memanipulasi dalam pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Data JSON ke Objek Python untuk Penyimpanan Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn