因此,我一直希望代码更干净,而且我陷入了某些可能很容易做到的事情。
基本上我目前所做的是:
for raw_product in r.json().get('data'):
if raw_product.get('countdown') is False:
print(raw_product.get('url'))
,我一直在尝试找出如何将其制成一根衬纸。到目前为止,我只是来
test = ['{}'.format(raw_product.get('url')) for raw_product in r.json().get('data')]
但是在一个衬里内部,缺少if语句,我想知道是否可以在['{}'.format(raw_product.get('url')) for raw_product in r.json().get('data')]
内应用if语句吗?
答案 0 :(得分:0)
尝试使用此生成器:
gen = (repr(x.get('url')) for x in r.json().get('data') if not x.get('countdown'))
或列表:
li = [repr(x.get('url')) for x in r.json().get('data') if not x.get('countdown')]
使此代码不干净的原因不是理解力,而是 “获取”方法。比较一下:
li = [x.url for x in r.json_data if not x.countdown]
。比较清晰。
答案 1 :(得分:-1)
我不确定它是否更干净,但是您可以使用带有if
过滤器的生成器表达式来在一行中获得这种模式:
[ print(rp.get('url')) for rp in r.json().get('data') if rp.get('countdown') is False ]
请注意,这样做会浪费效率,无法创建和记住None
值的整个列表(每次print
调用的结果)。