我的数据库中包含以下对象数组:
#This one prints
from bs4 import BeautifulSoup
import requests
import lxml
url = 'https://osu.ppy.sh/users/12008062'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')
for i in soup.select('span.nav2__menu-link-main-text'):
print(i.text)
#This one does not print
from bs4 import BeautifulSoup
import requests
import lxml
url = 'https://osu.ppy.sh/users/12008062'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')
for i in soup.select('div.value-dispaly__value'):
print(i.text)
当我从数据库中获取数据时,我需要将其存储在客户端的dataFromDB = [
{ src: 'stringWithSource1',
selected: true
},
{ src: 'stringWithSource2',
selected: false
},
{ src: 'stringWithSource3',
selected: true
},
AND SO ON...
];
中,该{strong>必须是字符串数组,其中仅包含 {{1} } state
对象的属性。
示例:
src
问题
我为其分配代码的行如下所示(请参见下面的代码):
我尝试过,但是那行不通,因为我将未选择的selected: true
保留为myState = [
'stringWithSource1',
'stringWithSource3',
AND SO ON...
]
,而不仅仅是跳过了它们。
src
如何在这样的一行中实现此行为?我知道我可以创建一个辅助变量并进行处理。但在这种情况下,我想要单线。这可能吗?感觉我应该同时过滤和映射?
答案 0 :(得分:5)
您需要两部分,因为过滤不会映射值,而是原始项。
您可以按selected
进行过滤,然后映射src
。
images: dataFromDB.images
.filter(({ selected }) => selected)
.map(({ src }) => src)