如何从 url 下载词典?
How to download dictionary from url?
我想从以下url下载词典:https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json
这是因为我想从字典中提取一些数据到 pandas df 中。它应该是这样的:
filed_date filed_periode form accn
2020-11-01 Q4 10-K 0001193125-15-153166
2020-08-01 Q3 10-Q 0001193125-15-153112
我可以使用以下代码从另一个 SEC-link 中提取字典:
import pandas as pd
import urllib
import json
url1 = 'https://www.sec.gov/files/company_tickers_exchange.json'
sec_dict = urllib.request.urlopen(url1)
for line in sec_dict:
decoded_line = line.decode("utf-8")
company_dict = json.loads(decoded_line)
如果第一个 url 使用上面的代码,我会得到以下错误:
HTTPError: HTTP Error 403: Forbidden
我尝试了另一种方法,但得到了同样的错误:
import urllib.request
user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'
url = "https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json"
headers={'User-Agent':user_agent,}
request=urllib.request.Request(url,None,headers)
response = urllib.request.urlopen(request)
data = response.read()
提前感谢您的指点:-)
SEC 对用户代理字符串有不同寻常的要求。他们希望它的格式为 Sample Company Name AdminContact@<sample company domain>.com
所以对我来说,合规的用户代理应该是:
user_agent = 'Dan Monego <myemail>@<emailservice>'
更改用户代理以包含您的姓名和电子邮件。
我想从以下url下载词典:https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json
这是因为我想从字典中提取一些数据到 pandas df 中。它应该是这样的:
filed_date filed_periode form accn
2020-11-01 Q4 10-K 0001193125-15-153166
2020-08-01 Q3 10-Q 0001193125-15-153112
我可以使用以下代码从另一个 SEC-link 中提取字典:
import pandas as pd
import urllib
import json
url1 = 'https://www.sec.gov/files/company_tickers_exchange.json'
sec_dict = urllib.request.urlopen(url1)
for line in sec_dict:
decoded_line = line.decode("utf-8")
company_dict = json.loads(decoded_line)
如果第一个 url 使用上面的代码,我会得到以下错误:
HTTPError: HTTP Error 403: Forbidden
我尝试了另一种方法,但得到了同样的错误:
import urllib.request
user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'
url = "https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json"
headers={'User-Agent':user_agent,}
request=urllib.request.Request(url,None,headers)
response = urllib.request.urlopen(request)
data = response.read()
提前感谢您的指点:-)
SEC 对用户代理字符串有不同寻常的要求。他们希望它的格式为 Sample Company Name AdminContact@<sample company domain>.com
所以对我来说,合规的用户代理应该是:
user_agent = 'Dan Monego <myemail>@<emailservice>'
更改用户代理以包含您的姓名和电子邮件。