python - 将 json 文件反序列化为对象数组
问题描述
我有一个包含新西兰地区和城镇的 json 文件:
{
"region": [
{
"region_name": "northland",
"towns": [
"whangarei",
"paihia",
"russel"
]
},
{
"region_name": "auckland",
"towns": [
"auckland",
"porirua"
]
}
]
}
我还定义了一个 Region 类来反序列化这个文件:
class Region:
def __init__(self):
self.region_name = ''
self.towns = []
我想将上面的 json 文件转换为一个数组Region
,这是我尝试过的:
import json
def get_nz_regions():
with open('location/nz_regions.json') as json_file:
nz_regions = json.load(json_file)
# return an array of Region
解决方案
你在寻找类似的东西
d = {
"region": [
{
"region_name": "northland",
"towns": [
"whangarei",
"paihia",
"russel"
]
},
{
"region_name": "auckland",
"towns": [
"auckland",
"porirua"
]
}
]
}
class Region:
def __init__(self, region_name, towns):
self.region_name = region_name
self.towns = towns
d_deserialized = {"region":[]}
for each_region in d["region"]:
d_deserialized["region"].append(Region(each_region["region_name"], each_region["towns"]))
print(d_deserialized)
{'region': [<__main__.Region object at 0x0000022344DB3DF0>, <__main__.Region object at 0x0000022344DB3D30>]}
推荐阅读
- javascript - Django:服务器响应状态为 403(禁止)(请修复错误)
- blazor - MudBlazor 中的 MudChip 双向绑定?
- java - 如何使用spring将对象添加到MongoDB集合内的数组中?
- python-3.x - 参数验证失败:输入中的未知参数:“过期”
- python - AttributeError:无法获取属性“_fill_function”
- java - 在 Dynamo DB SDK 2.XX for java 中,如何在扫描时指定表名?
- react-native - 从第一个屏幕滑到第二个屏幕并返回到第一个屏幕后无法返回
- pandas - Python。使用来自其他数据框(多列)的数据更新一个数据框并排除未更新的行
- angular - 如何在 Angular 10 中动态更改 ngModel 值
- kotlin - 在点击按钮时使用 Spinner 的选定值更新 firestore 中的字段