我编写的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]
答案 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)