当前位置: 首页 > 知识库问答 >
问题:

如何从python中的列表中调用具有特定关键字的特定元素?[重复]

容学林
2023-03-14

我想分解一个URL并提取我需要的信息。破坏URL很容易,但我不确定如何提取我需要的信息。

下面是URL中断部分。我想提取目标id部分并将其保存在dest_id中。在下面的示例URL中,它将是“1504033”(在“destination id=”旁边)

url = 'https://www.hotels.com/search.do?resolved-location=CITY%3A1504033%3AUNKNOWN%3AUNKNOWN&destination-id=1504033&q-destination=Las%20Vegas,%20Nevada,%20United%20States%20of%20America&q-check-in=2019-10-12&q-check-out=2019-10-13&q-rooms=1&q-room-0-adults=2&q-room-0-children=0'
url_break = url.split('%')

我知道如何通过索引号码呼叫,但它可能不会一直工作,因为该部分可以在任何地方而不是第5个索引。(可以是第三个或第四个)

共有1个答案

艾修然
2023-03-14

不要自己拆分网址,使用适当的库:

url = 'https://www.hotels.com/search.do?resolved-location=CITY%3A1504033%3AUNKNOWN%3AUNKNOWN&destination-id=1504033&q-destination=Las%20Vegas,%20Nevada,%20United%20States%20of%20America&q-check-in=2019-10-12&q-check-out=2019-10-13&q-rooms=1&q-room-0-adults=2&q-room-0-children=0'

from urllib import parse

k = parse.urlsplit(url)
params = parse.parse_qs(k.query) 

print(params) 

输出:

{'resolved-location': ['CITY:1504033:UNKNOWN:UNKNOWN'], 
 'destination-id': ['1504033'], 
 'q-destination': ['Las Vegas, Nevada, United States of America'], 
 'q-check-in': ['2019-10-12'], 'q-check-out': ['2019-10-13'], 
 'q-rooms': ['1'], 'q-room-0-adults': ['2'], 'q-room-0-children': ['0']}

并访问字典:

dest_id = params.get("destination-id")
 类似资料:
  • 我的变量如下所示: 我需要的是删除列表中的最后一个!我尝试检查文档,在上使用了函数,但不起作用。有什么想法或线索吗?谢谢!

  • 问题内容: 我有一个字典列表,它们在列表中都具有相同的结构。例如: 我想从列表中的每个字典中获取每个项目: 我当然可以遍历列表并使用for循环提取每个值: 但是我的数据集很大。我想知道是否有更快的方法。 问题答案: 如果只需要迭代一次值,请使用生成器表达式: 另一个(深奥的)选项可能与-一起使用-它可能会比生成器表达式快一点,或者不快一点,具体取决于情况: 而且,如果您绝对需要一个列表,则列表理解

  • 我有一个熊猫数据框,其中一列由列表组成: 我想添加,例如,每个列表的第一个和最后一个索引。为此,我使用: 这分别作用于每一行,如果数据帧很大,这可能会非常密集。有没有办法将此操作矢量化?

  • 问题内容: 我试图通过将所有参数元素为type_id =“ 4218”的所有“ ”元素从URL解析XML文件? XML文件: 这是我的Java代码: 这段代码给了我所有元素,我不想要,我想要属性type_id =“ 4218”的所有元素! 问题答案: XPath是您的正确选择: 并遍历

  • 问题内容: 如何最好地获得以下结构的所有“名称”字符串元素: 我的方法是: 这可能有效,但是Java中没有任何内容。在这里我只可以写这样的: ? 问题答案: 使用Java 8:

  • 在List/ArrayList中有没有什么方便的方法可以移除列表中特定索引之后的所有元素?而不是手动循环通过它来移除。 为了更解释,如果我有一个包含10个元素的列表,我想提到索引3,然后索引3之后的所有元素都被删除,我的列表现在只包含4个元素(从0开始计数)