закомментируйте свой цикл for и попробуйте это
def get_data(x):
try:
r = requests.get('https://query2.finance.yahoo.com/v10/finance/quoteSummary/' + x + '?formatted=true&crumb=8ldhetOu7RJ&lang=en-US®ion=US&modules=defaultKeyStatistics%2CfinancialData%2CcalendarEvents&corsDomain=finance.yahoo.com')
data = r.json()
financial_data = data['quoteSummary']['result'][0]['defaultKeyStatistics']
return financial_data['yield']
except:
return 'error'
df['Yield'] = df['Symbol'].apply(lambda x: get_data(x))
, если вы не хотите использовать apply
, вы можете использовать индексацию, которая была бы быстрее
for i in df.index:
x = df.at[i, 'Symbol']
try:
r = requests.get(
'https://query2.finance.yahoo.com/v10/finance/quoteSummary/' + x + '?formatted=true&crumb=8ldhetOu7RJ&lang=en-US®ion=US&modules=defaultKeyStatistics%2CfinancialData%2CcalendarEvents&corsDomain=finance.yahoo.com')
data = r.json()
financial_data = data['quoteSummary']['result'][0]['defaultKeyStatistics']
df.at[i, 'Yield'] = financial_data['yield']
except Exception as e:
print(e)
в случае ошибки его столбец Yield
будет иметь значение Nan
Да, продолжения могут быть довольно изнурительными. Вот хорошая загадка, которую я нашел некоторое время назад - попытайтесь выяснить, что напечатано и почему:
(define (mondo-bizarro)
(let ((k (call/cc (lambda (c) c)))) ; A
(write 1)
(call/cc (lambda (c) (k c))) ; B
(write 2)
(call/cc (lambda (c) (k c))) ; C
(write 3)))
(mondo-bizarro)
Объяснение того, как это работает (содержит спойлеры!):
call / cc
store возвращает его собственное продолжение и сохраняет его в k
. 1
записывается на экран. 1
снова записывается на экран 2
записывается на экран 1
снова записывается на экран 3
записывается на экран Следовательно, правильный вывод - 11213
. Самая распространенная претензия, которую я поставил жирным шрифтом - важно отметить, что когда вы используете продолжения для «сброса» значения k, это не влияет на значение k обратно в исходном продолжении.
У курса языков программирования Университета Брауна есть проблема , установленная для продолжений , общедоступных.