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

Python中从JSON响应提取特定对象item的实现方案

统一处理单个对象/数组形式的item数据

解决这个问题的核心是把单个对象统一转换成数组格式,这样后续就能用同一段循环逻辑处理两种情况,不用额外区分判断。

具体实现步骤

  1. 从字典中提取出item数据
  2. 判断item的类型:
    • 如果是字典(单个对象),将其包装为包含该字典的列表
    • 如果已经是列表,直接使用
  3. 遍历处理后的列表,将每条数据存入MySQL

代码示例

a_dict = {"ZWAS.Response": {"DATA_TT": {
"item": {"MNNS": "000000000100000134", "CBBB": "16667.000", "HARO": "004H", "MSPR": "000000004000000059",
         "BDD": "2022-10-16", "MTT": "04:15:00"}}}}
b_dict = {"ZWAS.Response": {"DATA_TT": {"item": [
{"MNNS": "000000000100000134", "CBBB": "16667.000", "HARO": "004H", "MSPR": "000000004000000059",
 "BDD": "2022-10-16", "MTT": "04:15:00"},
{"MNNS": "000000000100000134", "CBBB": "16667.000", "HARO": "004H", "MSPR": "000000004000000059",
 "BDD": "2022-10-16", "MTT": "04:15:00"}]}}}

def process_item(data_dict):
    # 提取item数据
    k1 = data_dict['ZWAS.Response']
    k2 = k1['DATA_TT']
    item = k2['item']
    
    # 统一转换为列表格式
    items_list = [item] if isinstance(item, dict) else item
    
    # 遍历处理每条数据(此处用打印模拟存入MySQL操作)
    for idx, data in enumerate(items_list):
        print(f"处理第{idx+1}条数据: {data}")
        # 在此添加MySQL入库代码,例如:
        # cursor.execute("INSERT INTO your_table (MNNS, CBBB, HARO, MSPR, BDD, MTT) VALUES (%s, %s, %s, %s, %s, %s)", 
        #                (data['MNNS'], data['CBBB'], data['HARO'], data['MSPR'], data['BDD'], data['MTT']))

# 测试单个对象场景
print("=== 处理单个item对象 ===")
process_item(a_dict)

# 测试数组场景
print("\n=== 处理item数组 ===")
process_item(b_dict)

代码说明

  • isinstance(item, dict)用来快速判断item是否为单个字典对象
  • 转换为列表后,无论原数据是单个还是多个,都能通过for data in items_list统一遍历
  • 循环内部可直接复用MySQL入库逻辑,无需额外分支判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:40:25