我正在嘗試做一些網絡報廢示例。我從一個網站下載數據,並將數據由XML和它的外觀像這樣如何從xml中提取所需的數據
ValCurs Date="20.04.2016" name="Official exchange rate">
<Valute ID="47">
<NumCode>978</NumCode>
<CharCode>EUR</CharCode>
<Nominal>1</Nominal>
<Name>Euro</Name>
<Value>22.4023</Value>
</Valute>
<Valute ID="44">
<NumCode>840</NumCode>
<CharCode>USD</CharCode>
<Nominal>1</Nominal>
<Name>US Dollar</Name>
<Value>19.7707</Value>
</Valute>
.
.
.
.
.
有超過25種貨幣。
我想只提取貨幣名稱和代表匯率的值。我有50天的數據,我想計算這50天內每種貨幣的平均匯率。 我下載數據並保存在xml文件中。我的代碼如下。
import os
import requests as rq
from bs4 import BeautifulSoup
from xml.etree import ElementTree as ET
def saveData(path, date):
session = rq.session()
url = 'https://www.bnm.md/en/official_exchange_rates?get_xml=1&date=' + date
datastore = session.get(url)
with open(path, 'wb') as f:
f.write(datastore.content)
value = ET.fromstring('/home/robbin/Desktop/20.04.2016.xml').find('Name/value')
if value:
print 'Found value:', value.text
def main():
dates = ['20.04.2016', '21.04.2016', '22.04.2016']
paths = []
for date in dates:
path = '/home/robbin/Desktop/{}.xml'.format(date)
paths.append(path)
for path, date in zip(paths, dates):
saveData(path, date)
if __name__ == '__main__':
main()
我得到這個錯誤: 提高ERR
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0
我的問題是,我無法從XML數據中提取的名稱和值數據。我在SO和互聯網上看到了一些例子,但與我的案例截然不同。如果有人能幫助,那會很棒。
我試過你的解決方案,但它沒有返回或在屏幕上打印任何東西,並且nabaz提到xml格式不正確。我從一個網站獲得這些數據,網址在代碼 – robbin
中的網址中給出。嘗試發佈'savedData'函數... –
非常感謝,它現在正在工作,我可以從xml標記中提取值。你拯救我的一天。祝你有美好的一天 – robbin