我正在为一家集装箱公司开发一个项目,我们需要处理来自提供集装箱运输信息的外部 API 的数据。 API 返回的 JSON 数据结构是高度动态的,某些键和嵌套对象可以根据运输类型或提供的数据而变化。
{
"container_id": "ABC123",
"status": "In Transit",
"location": {
"latitude": "40.7128",
"longitude": "-74.0060",
"city": "New York"
},
"cargo": {
"type": "Electronics",
"weight": "500kg"
},
"events": [
{
"event_type": "Departure",
"timestamp": "2024-08-29T08:00:00Z"
},
{
"event_type": "Customs Clearance",
"timestamp": "2024-08-30T12:00:00Z"
}
]
}
在另一个响应中,结构可能会有所不同,缺少一些键或添加了新键:
{
"container_id": "DEF456",
"status": "Delivered",
"location": {
"city": "Los Angeles"
},
"events": [
{
"event_type": "Arrival",
"timestamp": "2024-08-31T14:00:00Z"
}
]
}
我需要一种 Pythonic 方式来有效地处理这种动态 JSON 数据。具体来说,我正在寻找策略来:
有哪些最佳实践或库可以帮助在 Python 中管理此类复杂且动态的 JSON 解析,特别是在运输或物流公司的环境中?
您可以使用Python的
dict.get()
方法安全地访问深度嵌套的键。
示例:
data1 = {
"container_id": "ABC123",
"location": {
"latitude": "40.7128",
"longitude": "-74.0060",
"city": "New York"
}
}
data2 = {
"container_id": "DEF456",
"location": {
"city": "Los Angeles"
}
}
print("Data 1:")
latitude = data1.get('location', {}).get('latitude')
print("Latitude: " + latitude) if latitude else print('Latitude not found')
print("Data 2:")
longitude = data2.get('location', {}).get('longitude')
print(longitude) if longitude else print('Longitude not found')
输出:
Data 1:
Latitude: 40.7128
Data 2:
Longitude not found