环路无法正常工作,并且密钥输出错误

问题描述 投票:0回答:2

确定,我将开始显示我的代码:

import requests
import json
import csv
import pandas as pd

with open('AcoesURLJsonCompleta.csv', newline='') as csvfile:
    urlreader = csv.reader(csvfile, delimiter=',')
    for obj_id in urlreader:

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}
jsonData = requests.get(row, headers=headers).json()

mapper = (
    ('Ticker', 'ric'),
    ('Beta', 'beta'),
    ('DY', 'current_dividend_yield_ttm'),
    ('VOL', 'share_volume_3m'),
    ('P/L', 'pe_normalized_annual'),
    ('Cresc5A', 'eps_growth_5y'),
    ('LPA', 'eps_normalized_annual'),
    ('VPA', 'book_value_share_quarterly'),
    ('LAST', 'last')
)

data = {}
for dataKey, jsonDataKey in mapper: 
    d = jsonData.get(jsonDataKey, '') 
    try:
        flt_d = float(d)
    except ValueError:
        d = ''
    finally:
        data[dataKey] = [d]

table = pd.DataFrame(data, columns=['Ticker', 'Beta', 'DY', 'VOL', 'P/L', 'Cresc5A', 'LPA', 'VPA', 'Last'])
table.index = table.index + 1
table.to_csv('CompleteData.csv', sep=',', encoding='utf-8', index=False)
print(table)

好,让我们开始吧:

  1. 我的第一个循环for rows in Urls是正确的吗?我想循环浏览存储在CSV文件中的Urls,但不知道是否正确使用了分割和剥离。
  2. 我的json请求可以吗?
  3. 如果任何jsonData请求都返回NaN或Null或找不到任何内容,我该如何将其放在代码中,以便在发生这种情况时将其跳转到另一个URL并附加“”(无)?] >
  4. 整个代码的输出为line 25, in <module> Beta = jsonData['beta'] KeyError: 'beta'

谢谢

编辑:代码已编辑。我的csv中的一些网址,每行一个:

https://www.reuters.com/companies/api/getFetchCompanyKeyMetrics/LEVE3.sa,
https://www.reuters.com/companies/api/getFetchCompanyKeyMetrics/LIGT3.sa,
https://www.reuters.com/companies/api/getFetchCompanyKeyMetrics/LINX3.sa,
https://www.reuters.com/companies/api/getFetchCompanyKeyMetrics/LLIS3.sa,

所以,我想要的是:循环从CSV站点中的站点获取数据(作为代码源),然后将其存储在另一个CSV中。

[好,我将开始显示我的代码:导入请求import json导入csv以pd的形式将pandas以open('AcoesURLJsonCompleta.csv',newline ='')作为csvfile:urlreader = csv.reader(csvfile,。 ..

python json loops csv keyerror
2个回答
1
投票

更新的代码


0
投票

您可以做的一件事就是将需求3的概念封装在其自身的功能中:

© www.soinside.com 2019 - 2024. All rights reserved.