如何用Python列表推导式提取API返回结果中的所有sku值?
提取API返回结果中所有sku值的列表推导式写法
我有一个存储API返回结果的列表,结构如下:
result = [(True, {'result': {'skus': [{'sku': '123'}, {'sku': '124'}] } } ), (True, {'result': {'skus': [{'sku': '125'}, {'sku': '126'}] } } ) ]
我需要提取其中所有的sku值,目前可通过两层循环实现:
for elem in result: for sku in elem[1]["result"]["skus"]: print(sku)
一行列表推导式实现方案
可以用嵌套列表推导式完成,写法如下:
sku_list = [item['sku'] for elem in result for item in elem[1]["result"]["skus"]]
这个推导式的逻辑和两层循环完全一致:先遍历result中的每个元素elem,再遍历每个elem对应的elem[1]["result"]["skus"]列表里的字典项,最后提取每个字典中的sku值,最终得到包含所有sku的列表。运行后sku_list的结果为 ['123', '124', '125', '126']。
内容的提问来源于stack exchange,提问作者Iren E
相关产品推荐
相关产品推荐

