Python(7)_列表与字典相互嵌套的情况下如何取值

import  json
list = {
    "sourceMedia": [{
        "masterIp": "10.37.153.5",
        "slaveIps": [{
            "slaveIp": "10.37.153.5",
            "bkIp": None
        }],
        "port": "3306",
        "dbName": "rdrssit_5",
        "dataCenter": "xuzhuang",
        "rovip": "10.37.153.5",
        "rwvip": "10.37.153.5",
        "sysEname": "RDRS",
        "haType": "S",
        "slaveBkExist": False,
        "logicUserName": None,
        "logicPassword": None,
        "logicDbName": None,
        "logicPort": None,
        "clusterSn": None,
        "partitionColumn": None,
        "disPlayName": "10.37.153.5-RDRS-rdrssit_5-xuzhuang",
        "subscribeMultiTables": [{
            "tableName": "test_table01",
            "isInit": True
        }],
        "subscribeRecType": False,
        "dataSourceType": "regular"
    }],
    "subscribeJobInfo": {
        "userName": "18110522",
        "bizSystem": "RDRS",
        "subscribeRecType": "recoveryIncluded"
    }
}
''' 这个json格式,sourceMedia、subscribeJobInfo两层目录 sourceMedia下面其实又嵌套了字典和key-value值,但是加了中括号的就得加索引,这样才能获取到'''
print(list['subscribeJobInfo'])    #ok
print(list['subscribeJobInfo']['userName'])  # ok

print(list['sourceMedia'][0]) #ok
print(list['sourceMedia'][0]['port']) #ok
print(list['sourceMedia'][0]['masterIp']) #ok
print(list['sourceMedia'][0]['subscribeMultiTables'][0]['isInit']) # ok

 

    列表与字典的获取,在列表与字典多层相互嵌套的情况下,获取某个属性的值,必须分清楚嵌套层次,然后才能获取值。还有列表一定要加中括号[0],列表里面包含字典!不然不识别的!从0开始!

   

response_list={
    "result": True,
    "errCode": None,
    "msg": None,
    "data": {
        "kafkaConsumedParams": [{
            "partition": "0",
            "lastestOffset": "",
            "lastestOffsetTime": "",
            "snapNotConsumed": "",
            "incrNotConsumed": "",
            "snapExtracted": "0"
        },
        {
            "partition": "1",
            "lastestOffset": "",
            "lastestOffsetTime": "",
            "snapNotConsumed": "",
            "incrNotConsumed": "",
            "snapExtracted": "0"
        }],
        "captureInitStatus": [{
            "connectorName": "10.37.153.4-RDRS-rdrssit_4_1544012992078.6638",
            "startTime": None,
            "updateTime": None,
            "endTime": None,
            "status": "unstarted"
        },
        {
            "connectorName": "10.37.153.5-RDRS-rdrssit_5_1544012992078.6638",
            "startTime": None,
            "updateTime": None,
            "endTime": None,
            "status": "unstarted"
        }]
    }
}
# print(type(response_list))   # 字典类型
# varcaptureInitStatus0 = response_list['data']['captureInitStatus'][0]
# varcaptureInitStatus1 = response_list['data']['captureInitStatus'][1]
# print(varcaptureInitStatus1)  # 这样获取的依然是个字典,
# print(type(varcaptureInitStatus1))

for i in (0,1):
    varcaptureInitStatus = response_list['data']['captureInitStatus'][i]['status']  # 字典里面有列表
    print(varcaptureInitStatus)

 

转载于:https://www.cnblogs.com/sunnybowen/p/10140281.html

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值