Python字典打印第一个值,并忽略为空

时间:2018-10-01 13:22:02

标签: python dictionary

我编写的aws lambda函数为我提供了以下字典输出(请注意“ START RequestID和END Request ID之间的字典,

START RequestId: 74d45fe6-c579-11e8-835d-73465f3bb0f0 Version: $LATEST
{u'd2otag1p96': [[0, 20]], u'k43tbb7nic': [[0, 20]], u'90yuipi22i': [[18, 2]]}
{}
END RequestId: 74d45fe6-c579-11e8-835d-73465f3bb0f0

请有人告诉我如何仅打印键及其第一个对应值,而忽略第三行的2个大括号吗?即d2otag1p96:0,k43tbb7nic:0,90yuipi22i:18

以下是我尝试过的尝试,但无济于事。仅发布与该问题相关的部分代码。注意打印语句。

for uplan in uplans:
        used = (uplan['id'])
        lmt = (uplan['quota']['limit'])
        resp = client.get_usage(keyId='',usagePlanId=(used), startDate=today,endDate=today)['items']
        print(resp.itmes)[0]

2 个答案:

答案 0 :(得分:1)

通过测试空字典{}的长度不为零来禁止打印。假设dd是您的字典。

if len(dd.keys())>0:
    [print(key, value[0][0]) for key, value in dd.items()]

给予

d2otag1p96 0
k43tbb7nic 0
90yuipi22i 18

对于

dd = dict({u'd2otag1p96': [[0, 20]], u'k43tbb7nic': [[0, 20]], u'90yuipi22i': [[18, 2]]})

无效
dd = dict{}

答案 1 :(得分:0)

假设您收到的是实际的dict,而不是json。这是说明我的观点的例子。只需检查字典是否为空

d={}
if d:
    print('printing dict with values')
    print(d.items()[0])
else:
    print('empty dict')

输出:

'empty dict'

在另一个示例中,如果dict包含密钥

d={u'd2otag1p96': [[0, 20]], u'k43tbb7nic': [[0, 20]], u'90yuipi22i': [[18, 2]]}
if d:
    print('printing dict with values')
    for k,v in d.items():
        print(str(k),v[0][0])
else:
    print('empty dict')

输出

 printing dict with values
('d2otag1p96', 0)
('k43tbb7nic', 0)
('90yuipi22i', 18)