首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从REST请求中提取Python中的特定数据

如何从REST请求中提取Python中的特定数据
EN

Stack Overflow用户
提问于 2022-11-19 15:23:46
回答 2查看 50关注 0票数 -1

我正在使用来自RapidApi的REST,我成功地打印了整个响应,但是我只需要一些特定的参数。比如,只打印12月和到达时间。当使用params:{}时,没有帮助,因为这会打印带有指定参数的每个参数。我需要逆,以打印一个特定的参数与更多的参数。

代码语言:javascript
运行
复制
import requests
url = "https://timetable-lookup.p.rapidapi.com/TimeTable/LHR/BCN/20221119/"

headers = {
    "X-RapidAPI-Key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "X-RapidAPI-Host": "timetable-lookup.p.rapidapi.com"
}

response = requests.request("GET",url,headers=headers, params=querystring)
print(response.text)

API响应如下:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<OTA_AirDetailsRS PrimaryLangID="eng" Version="1.0" TransactionIdentifier="" FLSNote="This XML adds attributes not in the OTA XML spec.  All such attributes start with FLS" FLSDevice="ota-xml-expanded" xmlns="http://www.opentravel.org/OTA/2003/05">
  <Success/>
  <FLSResponseFields FLSOriginCode="LHR" FLSOriginName="Heathrow Airport" FLSDestinationCode="BCN" FLSDestinationName="Barcelona Airport" FLSStartDate="2022-11-19" FLSEndDate="2022-11-19" FLSResultCount="5" FLSRoutesFound="124" FLSBranchCount="1457" FLSTargetCount="1112" FLSRecordCount="785252"/>
  <FlightDetails TotalFlightTime="PT2H05M" TotalMiles="714" TotalTripTime="PT2H05M" FLSDepartureDateTime="2022-11-19T06:05:00" FLSDepartureTimeOffset="+0000" FLSDepartureCode="LHR" FLSDepartureName="Heathrow Airport" FLSArrivalDateTime="2022-11-19T09:10:00" FLSArrivalTimeOffset="+0100" FLSArrivalCode="BCN" FLSArrivalName="Barcelona Airport" FLSFlightType="NonStop" FLSFlightLegs="1" FLSFlightDays=".....6." FLSDayIndicator="">
    <FlightLegDetails DepartureDateTime="2022-11-19T06:05:00" FLSDepartureTimeOffset="+0000" ArrivalDateTime="2022-11-19T09:10:00" FLSArrivalTimeOffset="+0100" FlightNumber="472" JourneyDuration="PT2H05M" SequenceNumber="1" LegDistance="714" FLSMeals="G" FLSInflightServices=" " FLSUUID="LHRBCN20221119BA472">
      <DepartureAirport CodeContext="IATA" LocationCode="LHR" FLSLocationName="Heathrow Airport" Terminal="5" FLSDayIndicator=""/>
      <ArrivalAirport CodeContext="IATA" LocationCode="BCN" FLSLocationName="Barcelona Airport" Terminal="1" FLSDayIndicator=""/>
      <MarketingAirline Code="BA" CodeContext="IATA" CompanyShortName="British Airways"/>
      <Equipment AirEquipType="32N"/>
    </FlightLegDetails>
  </FlightDetails>
  <FlightDetails TotalFlightTime="PT2H05M" TotalMiles="714" TotalTripTime="PT2H05M" FLSDepartureDateTime="2022-11-19T07:25:00" FLSDepartureTimeOffset="+0000" FLSDepartureCode="LHR" FLSDepartureName="Heathrow Airport" FLSArrivalDateTime="2022-11-19T10:30:00" FLSArrivalTimeOffset="+0100" FLSArrivalCode="BCN" FLSArrivalName="Barcelona Airport" FLSFlightType="NonStop" FLSFlightLegs="1" FLSFlightDays=".....6." FLSDayIndicator="">
    <FlightLegDetails DepartureDateTime="2022-11-19T07:25:00" FLSDepartureTimeOffset="+0000" ArrivalDateTime="2022-11-19T10:30:00" FLSArrivalTimeOffset="+0100" FlightNumber="478" JourneyDuration="PT2H05M" SequenceNumber="1" LegDistance="714" FLSMeals="G" FLSInflightServices=" " FLSUUID="LHRBCN20221119BA478">
      <DepartureAirport CodeContext="IATA" LocationCode="LHR" FLSLocationName="Heathrow Airport" Terminal="5" FLSDayIndicator=""/>
      <ArrivalAirport CodeContext="IATA" LocationCode="BCN" FLSLocationName="Barcelona Airport" Terminal="1" FLSDayIndicator=""/>
      <MarketingAirline Code="BA" CodeContext="IATA" CompanyShortName="British Airways"/>
      <Equipment AirEquipType="320"/>
    </FlightLegDetails>
  </FlightDetails>
  <FlightDetails TotalFlightTime="PT2H05M" TotalMiles="714" TotalTripTime="PT2H05M" FLSDepartureDateTime="2022-11-19T10:25:00" FLSDepartureTimeOffset="+0000" FLSDepartureCode="LHR" FLSDepartureName="Heathrow Airport" FLSArrivalDateTime="2022-11-19T13:30:00" FLSArrivalTimeOffset="+0100" FLSArrivalCode="BCN" FLSArrivalName="Barcelona Airport" FLSFlightType="NonStop" FLSFlightLegs="1" FLSFlightDays=".....6." FLSDayIndicator="">
    <FlightLegDetails DepartureDateTime="2022-11-19T10:25:00" FLSDepartureTimeOffset="+0000" ArrivalDateTime="2022-11-19T13:30:00" FLSArrivalTimeOffset="+0100" FlightNumber="474" JourneyDuration="PT2H05M" SequenceNumber="1" LegDistance="714" FLSMeals="G" FLSInflightServices=" " FLSUUID="LHRBCN20221119BA474">
      <DepartureAirport CodeContext="IATA" LocationCode="LHR" FLSLocationName="Heathrow Airport" Terminal="5" FLSDayIndicator=""/>
      <ArrivalAirport CodeContext="IATA" LocationCode="BCN" FLSLocationName="Barcelona Airport" Terminal="1" FLSDayIndicator=""/>
      <MarketingAirline Code="BA" CodeContext="IATA" CompanyShortName="British Airways"/>
      <Equipment AirEquipType="32N"/>
    </FlightLegDetails>
  </FlightDetails>
  <FlightDetails TotalFlightTime="PT2H05M" TotalMiles="714" TotalTripTime="PT2H05M" FLSDepartureDateTime="2022-11-19T13:15:00" FLSDepartureTimeOffset="+0000" FLSDepartureCode="LHR" FLSDepartureName="Heathrow Airport" FLSArrivalDateTime="2022-11-19T16:20:00" FLSArrivalTimeOffset="+0100" FLSArrivalCode="BCN" FLSArrivalName="Barcelona Airport" FLSFlightType="NonStop" FLSFlightLegs="1" FLSFlightDays=".....6." FLSDayIndicator="">
    <FlightLegDetails DepartureDateTime="2022-11-19T13:15:00" FLSDepartureTimeOffset="+0000" ArrivalDateTime="2022-11-19T16:20:00" FLSArrivalTimeOffset="+0100" FlightNumber="480" JourneyDuration="PT2H05M" SequenceNumber="1" LegDistance="714" FLSMeals="G" FLSInflightServices=" " FLSUUID="LHRBCN20221119BA480">
      <DepartureAirport CodeContext="IATA" LocationCode="LHR" FLSLocationName="Heathrow Airport" Terminal="5" FLSDayIndicator=""/>
      <ArrivalAirport CodeContext="IATA" LocationCode="BCN" FLSLocationName="Barcelona Airport" Terminal="1" FLSDayIndicator=""/>
      <MarketingAirline Code="BA" CodeContext="IATA" CompanyShortName="British Airways"/>
      <Equipment AirEquipType="320"/>
    </FlightLegDetails>
  </FlightDetails>
  <FlightDetails TotalFlightTime="PT2H05M" TotalMiles="714" TotalTripTime="PT2H05M" FLSDepartureDateTime="2022-11-19T19:20:00" FLSDepartureTimeOffset="+0000" FLSDepartureCode="LHR" FLSDepartureName="Heathrow Airport" FLSArrivalDateTime="2022-11-19T22:25:00" FLSArrivalTimeOffset="+0100" FLSArrivalCode="BCN" FLSArrivalName="Barcelona Airport" FLSFlightType="NonStop" FLSFlightLegs="1" FLSFlightDays=".....6." FLSDayIndicator="">
    <FlightLegDetails DepartureDateTime="2022-11-19T19:20:00" FLSDepartureTimeOffset="+0000" ArrivalDateTime="2022-11-19T22:25:00" FLSArrivalTimeOffset="+0100" FlightNumber="482" JourneyDuration="PT2H05M" SequenceNumber="1" LegDistance="714" FLSMeals="G" FLSInflightServices=" " FLSUUID="LHRBCN20221119BA482">
      <DepartureAirport CodeContext="IATA" LocationCode="LHR" FLSLocationName="Heathrow Airport" Terminal="5" FLSDayIndicator=""/>
      <ArrivalAirport CodeContext="IATA" LocationCode="BCN" FLSLocationName="Barcelona Airport" Terminal="1" FLSDayIndicator=""/>
      <MarketingAirline Code="BA" CodeContext="IATA" CompanyShortName="British Airways"/>
      <Equipment AirEquipType="32N"/>
    </FlightLegDetails>
  </FlightDetails>
</OTA_AirDetailsRS>

如何编写仅显示到达国和目的地国的DepartureDateTime、ArrivalDateTime和LocationCode的代码?

谢谢!

EN

Stack Overflow用户

发布于 2022-11-19 15:35:43

尝试使用xml.etree.ElementTree包解析输出。从那里开始,您应该能够在xml树中搜索相关数据并显示它。

下面是一个让你开始学习的片段:

代码语言:javascript
运行
复制
# create element tree object
tree = ET.parse(xmlfile)
  
# get root element
root = tree.getroot()

从那里,您可以使用树结构从根搜索。文档在这里,https://docs.python.org/3/library/xml.etree.elementtree.html

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74501243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档