更新時間:2023年03月29日11時25分 來源:傳智教育 瀏覽次數(shù):
當(dāng) Python 字典和JSON字符串的鍵或值為自定義對象時,需要進行特殊處理才能進行轉(zhuǎn)換。以下是兩個示例:
1.自定義對象轉(zhuǎn) JSON 字符串
假設(shè)有一個自定義對象Person,其中包含name、age和city三個屬性:
class Person: def __init__(self, name, age, city): self.name = name self.age = age self.city = city
我們可以將這個對象轉(zhuǎn)換為一個Python字典,然后再將其轉(zhuǎn)換為JSON字符串:
import json person = Person("Alice", 30, "New York") person_dict = {"name": person.name, "age": person.age, "city": person.city} person_json = json.dumps(person_dict) print(person_json)
輸出:
{"name": "Alice", "age": 30, "city": "New York"}
2.JSON 字符串轉(zhuǎn)自定義對象
假設(shè)有以下 JSON 字符串:
{ "name": "Alice", "age": 30, "city": "New York" }
我們可以使用json模塊中的loads()函數(shù)將其轉(zhuǎn)換為Python字典,然后再將其轉(zhuǎn)換為自定義對象:
import json class Person: def __init__(self, name, age, city): self.name = name self.age = age self.city = city person_json = '{"name": "Alice", "age": 30, "city": "New York"}' person_dict = json.loads(person_json) person = Person(person_dict["name"], person_dict["age"], person_dict["city"]) print(person.name, person.age, person.city)
輸出:
Alice 30 New York
需要注意的是,當(dāng)Python對象嵌套了其他自定義對象或容器對象時,轉(zhuǎn)換起來會更加復(fù)雜。這時需要使用遞歸或其他的轉(zhuǎn)換方法。