XMLSyntaxError: ожидается начальный тег, «<» не найден, строка 1, столбец 1 - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь создать скрипт для запроса API национальной сети Великобритании. Вот мой код:

 import requests
 import pandas as pd
 from lxml import etree

def getXML(toDate, fromDate, dayType):

  url = "http://marketinformation.natgrid.co.uk/MIPIws-public/public/publicwebservice.asmx"
  headers = {'content type': 'application/soap+xml; charset=utf-8'}

  body="""
  <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
      <GetPublicationDataWM xmlns="http://www.NationalGrid.com/MIPI/">
        <reqObject>
          <LatestFlag>N</LatestFlag>
          <ApplicableForFlag>Y</ApplicableForFlag>
          <ToDate>%s</ToDate>
          <FromDate>%s</FromDate>
          <DateType>%s</DateType>
          <PublicationObjectNameList>
            <string>LNG Stock Level</string>
          </PublicationObjectNameList>
        </reqObject>
      </GetPublicationDataWM>
    </soap:Body>
  </soap:Envelope>
  """ % (toDate,fromDate,dayType)

  response=requests.post(url,data=body,headers=headers)

  return response.content


df = pd.DataFrame(columns=("applicable_at","applicable for","name","value","generated","quality indicator","substituted","created date"))

for pd_date in pd.date_range('2019-01-01','2019-01-03'):
  day = pd_date.strftime('%Y-%m-%d')

  root = etree.fromstring(getXML(day,day,"normal"))

Но я получаю следующую ошибку:

  File "<string>", line 1
XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1

Я пытался следовать рекомендации, предоставленной Национальной сеткой (ссылка ниже), но продолжайте возвращать ту же ошибку.

http://marketinformation.natgrid.co.uk/MIPIws-public/public/publicwebservice.asmx?op=GetPublicationDataWM

1 Ответ

0 голосов
/ 26 марта 2020

У вас есть пробел перед первым открытием "<". Это не разрешено. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...