0
저는 Python 2.7로 Yahoo Finance에서 테이블 데이터를 읽고 모든 데이터의 2 차원 목록을 제공하려고합니다. 나는이 프로그램을 실행할 때 Python에서 테이블 데이터를 주문할 때 TypeError가 발생했습니다.
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
내가 다른 답변을 통해 검토 한 결과,하지만 나는 그들이 무슨 뜻인지 모르겠어요.
일종의 헤더를 사용하여 모든 테이블 데이터를 읽기 쉬운 방식으로 반환하는 더 좋은 방법이 있습니까?
그렇지 않은 경우 어떻게해야이 오류를 해결할 수 있습니까? 파이썬은 볼 수 있도록
output = [["Strike"]["Contract Name"]["Last"]["Bid"]["Ask"]["Change"]["\% Change"]["Volume"]["Open Interest"]["Implied Volatility"]]
당신은 ["Strike"][...]
와 인덱스 첫 번째 목록에 노력하고있다 :
[["Strike", "28.00", "30.00", "30.50"...], ["Contract Name", "INTC150206C00028000"...], and_so_on]