Я пытаюсь прочитать данные таблицы из Yahoo Finance с помощью Python 2.7 и дать мне двумерный список всех данных. Вот мой код до сих пор:TypeError при заказе данных таблицы в Python
def getStocks():
from lxml import html
import requests
page = requests.get("https://finance.yahoo.com/q/op?s=INTC+Options")
tree = html.fromstring(page.text)
output = [["Strike"]["Contract Name"]["Last"]["Bid"]["Ask"]["Change"]["\% Change"]["Volume"]["Open Interest"]["Implied Volatility"]]
for x in range(10):
colData = tree.xpath('//tr[@data-row-quote="_"]/td[{}]//*[text()]/text()'.format(x + 1))
output[x].extend(colData)
Теперь, когда я запускаю это, он дает мне эту ошибку:
Traceback (most recent call last):
File "C:\Users\username\Python\stock_get.py", line 17, in <module>
getStocks()
File "C:\Users\username\Python\stock_get.py", line 8, in getStocks
output = [["Strike"]["Contract Name"]["Last"]["Bid"]["Ask"]["Change"]["\% Change"]["Volume"]["Open Interest"]["Implied Volatility"]]
TypeError: list indices must be integers, not str
Я просмотрел другие ответы, но я не уверен, что они означают.
Есть ли лучший способ вернуть все данные таблицы четким способом с заголовками какого-то рода?
Если нет, то как я могу решить эту ошибку? Я хочу, чтобы дать мне что-то вроде этого:
[["Strike", "28.00", "30.00", "30.50"...], ["Contract Name", "INTC150206C00028000"...], and_so_on]