from dataclasses import dataclass # 最内层:人 @dataclass class Person: name: str age: int job: str # 城市:里面包含 Person 对象 @dataclass class City: city_name: str people: Person # 成员是 Person 对象 # 省份:里面包含城市列表 @dataclass class Province: province_name: str city_list: list[City] # 最外层顶级对象 Country,对标 LLM 的 res 返回对象 @dataclass class Country: country_name: str province_list: list[Province] # 先造最内层的人 p = Person(name="张三", age=20, job="程序员") # 造城市,把人塞进去 hz = City(city_name="杭州市", people=p) # 造省份,把城市放进列表 zj = Province(province_name="浙江省", city_list=[hz]) # 顶级大对象:整个中国,对标 res china = Country( country_name="中国", province_list=[zj] ) # 直接打印顶级对象 dataclass 友好一点,但依然不能直接拿内层数据 print(china) # 逐层拆解,和 LLM 取值一一对应 # 1.取省份列表 provinces = china.province_list # 2.取第0个省份 zhejiang = provinces[0] # 3.取该省第0个城市 hangzhou = zhejiang.city_list[0] # 4.拿到人对象,取 name person_name = hangzhou.people.name print(person_name) # 张三 print(hangzhou.people.age) # 20 result = china.province_list[0].city_list[0].people.name print(result)