You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从estate.json生成对象存储objektidentitet值?

解决方案

首先,先确保你已经正确读取了JSON文件,基础代码参考如下:

import json

# 读取JSON文件
with open('estate.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

# 提取所有Feature对象
features = data.get('features', [])

下面给出几种将objektidentitet及相关数据封装为可复用对象的实现方法:

方法1:使用dataclasses(推荐,Python3.7+)

dataclasses是Python标准库自带的工具,能快速定义数据类,无需手动编写初始化和字符串输出方法:

from dataclasses import dataclass

@dataclass
class Estate:
    objektidentitet: str
    # 若需要其他properties字段,直接在这里添加即可,比如:
    # estate_name: str
    # area: float

# 批量转换为Estate对象列表
estate_objects = []
for feature in features:
    props = feature.get('properties', {})
    estate = Estate(
        objektidentitet=props.get('objektidentitet')
        # 其他字段按需补充,比如estate_name=props.get('name')
    )
    estate_objects.append(estate)

# 使用示例:遍历对象获取值
for estate in estate_objects:
    print(estate.objektidentitet)

方法2:普通自定义类

如果不想用dataclass,手动实现类的初始化逻辑也可以:

class Estate:
    def __init__(self, objektidentitet):
        self.objektidentitet = objektidentitet
        # 可按需添加其他属性,比如self.area = area

# 转换为对象列表
estate_objects = []
for feature in features:
    objekt_id = feature['properties']['objektidentitet']
    estate_objects.append(Estate(objekt_id))

# 使用示例
for estate in estate_objects:
    print(estate.objektidentitet)

方法3:使用recordclass(轻量级,适合大量数据)

如果之前尝试recordclass没搞懂,参考以下步骤:

首先安装依赖库:

pip install recordclass

然后编写代码:

from recordclass import recordclass

# 定义轻量级数据类,属性可修改且内存占用更低
Estate = recordclass('Estate', ['objektidentitet'])

# 批量转换为对象列表
estate_objects = [Estate(feature['properties']['objektidentitet']) for feature in features]

# 使用示例
for estate in estate_objects:
    print(estate.objektidentitet)

方法4:简化方案——字典列表

如果不需要严格的对象结构,直接提取properties为字典列表也能满足后续操作,灵活性更高:

estate_dicts = [feature['properties'] for feature in features]

# 使用示例:提取所有objektidentitet值
objekt_ids = [item['objektidentitet'] for item in estate_dicts]
print(objekt_ids)

你可以根据需求选择方案:需要结构化类型约束选dataclass;数据量极大追求性能选recordclass;临时快速处理用字典列表即可。

内容的提问来源于stack exchange,提问作者MathiasF78

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:57:29