【发布时间】:2020-07-08 08:02:59
【问题描述】:
我有一个字典列表,它是从论坛中抓取的 HTML 元素:
[{'title': 'aaa', 'responses': '1 response', 'url': 'https://www.example.com/aaa'}, {'title': 'bbb', 'responses': '4 responses', 'url': 'https://www.example.com/bbb'}, {'title': 'ccc', 'responses': '2 responses', 'url': 'https://www.example.com/ccc'}, {'title': 'ddd', 'responses': '8 responses', 'url': 'https://www.example.com/ccc'}, {'title': 'eee', 'responses': '2 responses', 'url': 'https://www.example.com/eee'}]
如果 'reponses' 项小于 2 个响应,我想从字典中提取 'url' 项。 我尝试了这段代码,它运行良好,但仅适用于第一项:
dict = {'url1': ''}
item1 = "1 response"
item2 = "2 responses"
if item1 in scrape[0]['responses'] or item2 in scrape[0]['responses']:
dict['url1'] = scrape[0]['url']
print(dict)
{'url1': 'https://www.example.com/aaa'}
如果我删除 [0] 元素,我会得到:TypeError: list indices must be integers or slices, not str
我想要这个结果:
{'url1': 'https://www.example.com/aaa', 'url2': 'https://www.example.com/eee'}
如何做到这一点?
【问题讨论】:
-
您要包含 2 个回复吗?如果是这样,为什么预期结果没有
https://www.example.com/eee?另外,你要枚举你的结果dict的key吗? -
只是澄清一下:您的问题是如何为 the_scrap 中的 each_entry 执行此操作,对吗?
-
对不起,你是对的。我在参加的结果中犯了一个错误。我编辑我的帖子。是的,我想测试废料中的每个条目以搜索“响应”元素并根据数字提取数据:如果它是
-
你知道
for循环是什么吗? -
是的,但是由于我是 Python 的初学者,这种操作对于我的技能水平来说有点太高级了。无论如何,这是一个开始学习的好练习。感谢在这里发布的其他成员,我的升级速度非常快;)
标签: python list dictionary