Пример сообщения в формате JSON приведен ниже:
Код: Выделить всё
{
"GlobalGnbId": {
"PlmnIdentity": {
"Data": [
19,
241,
132
]
},
"GnbId": {
"Value": 1,
"Length": 22
}
},
"OptionalGnbDuId": 1
}
Код: Выделить всё
class PlmnIdentity(BaseModel):
"""Class for PLMN identity"""
Data: list[int]
class GnbId(BaseModel):
"""Class for gNodeB ID"""
Value: int
Length: int
class GlobalGnbId(BaseModel):
"""Class for global gNodeB ID"""
PlmnIdentity: PlmnIdentity
GnbId: GnbId
class NodeId(BaseModel):
"""Class for node ID"""
GlobalGnbId: GlobalGnbId
OptionalGnbDuId: int
Код: Выделить всё
from pydantic import BaseModel, TypeAdapter
import json
class PlmnIdentity(BaseModel):
"""Class for PLMN identity"""
Data: list[int]
class GnbId(BaseModel):
"""Class for gNodeB ID"""
Value: int
Length: int
class GlobalGnbId(BaseModel):
"""Class for global gNodeB ID"""
PlmnIdentity: PlmnIdentity
GnbId: GnbId
class NodeId(BaseModel):
"""Class for node ID"""
GlobalGnbId: GlobalGnbId
OptionalGnbDuId: int
node_id_str = \
"""
{
"GlobalGnbId": {
"PlmnIdentity": {
"Data": [
19,
241,
132
]
},
"GnbId": {
"Value": 1,
"Length": 22
}
},
"OptionalGnbDuId": 1
}
"""
# NodeId as class
node_id_class = TypeAdapter(NodeId).validate_json(node_id_str)
print(node_id_class)
print(node_id_class.GlobalGnbId)
print(node_id_class.GlobalGnbId.PlmnIdentity)
print(node_id_class.GlobalGnbId.PlmnIdentity.Data)
print(node_id_class.GlobalGnbId.GnbId)
print(node_id_class.GlobalGnbId.GnbId.Value)
print(node_id_class.GlobalGnbId.GnbId.Length)
print(node_id_class.OptionalGnbDuId)
# NodeId as dictionary
node_id_dict = node_id_class.model_dump()
print(node_id_dict)
Подробнее здесь: https://stackoverflow.com/questions/792 ... on-classes
Мобильная версия