в HTML, вы делаете это в обратном порядке: вы определяете ввод текста и присоединяете к нему datalist. (обратите внимание на атрибут списка ввода).
<input type="text" list="browsers" />
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
закомментируйте свой цикл 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