add XHData

This commit is contained in:
TerenceLiu 2022-01-28 00:09:06 +08:00
parent bf14b1f058
commit a8829a93b5
2 changed files with 223 additions and 1309 deletions

223
CEDA/economic/XHData.py Normal file
View File

@ -0,0 +1,223 @@
import ast
import requests
import pandas as pd
url = {
"CNFIN": "https://api.cnfin.com/roll/charts/"
}
class XHData(object):
def __init__(self):
pass
def download(self, id:int=None):
tmp_url = url["CNFIN"] + "getContent?ids={}".format(id)
r = requests.get(tmp_url)
if r.ok:
raw_data = r.json()
data = pd.DataFrame(ast.literal_eval(raw_data["data"]["list"][0]["content"]))
return data
else:
return ValueError("Something went wrong, try again later")
def GDP(self):
"""
quarterly
"""
data = self.download(id=12006)
data.columns = ["date", "data"]
return data
def Household_Consumption_SPLY(self):
"""
quarterly
"""
data = self.download(id=12073)
data.columns = ["date", "data"]
return data
def Household_Consumption(self):
"""
quarterly
"""
data = self.download(id=12074)
data.columns = ["date", "data"]
return data
def Per_capita_Disposable_Income(self):
"""
quarterly
"""
data = self.download(id=12071)
data.columns = ["date", "data"]
return data
def Urban_Average_Salary_Annual(self):
"""
quarterly
"""
data = self.download(id=12070)
data.columns = ["date", "data"]
return data
def Urban_Uneployment_Rate(self):
"""
quarterly
"""
data = self.download(id=12069)
data.columns = ["date", "data"]
return data
def Government_Bound_Return_Rate_10_Year(self):
"""
quarterly
"""
data = self.download(id=12068)
data.columns = ["date", "data"]
return data
def Government_Bound_Return_Rate_3_Year(self):
"""
quarterly
"""
data = self.download(id=12067)
data.columns = ["date", "data"]
return data
def Government_Bound_Return_Rate_1_Year(self):
"""
quarterly
"""
data = self.download(id=12066)
data.columns = ["date", "data"]
return data
def LPR_1_Year(self):
"""
Monthly
"""
data = self.download(id=12065)
data.columns = ["date", "data"]
return data
def SHIBOR_3_Month(self):
"""
Daily
"""
data = self.download(id=12064)
data.columns = ["date", "data"]
return data
def SHIBOR_2_Week(self):
"""
Daily
"""
data = self.download(id=12063)
data.columns = ["date", "data"]
return data
def SHIBOR_1_Day(self):
"""
Daily
"""
data = self.download(id=12063)
data.columns = ["date", "data"]
return data
def Foreign_Exchange_Options(self):
data = self.download(id=12060)
data.columns = ["date", "data"]
return data
def Foreign_Exchange_Swaps(self):
data = self.download(id=12059)
data.columns = ["date", "data"]
return data
def Foreign_Exchange_Forward(self):
data = self.download(id=12058)
data.columns = ["date", "data"]
return data
def Foreign_Exchange_Spot(self):
data = self.download(id=12057)
data.columns = ["date", "data"]
return data
def Loan_to_Deposit(self):
data = self.download(id=12056)
data.columns = ["date", "data"]
return data
def RMB_Deposits(self):
data = self.download(id=12055)
data.columns = ["date", "data"]
return data
def RMB_Loan(self):
data = self.download(id=12054)
data.columns = ["date", "data"]
return data
def M0_SPLY(self):
data = self.download(id=12053)
data.columns = ["date", "data"]
return data
def M1_SPLY(self):
data = self.download(id=12052)
data.columns = ["date", "data"]
return data
def M2_SPLY(self):
data = self.download(id=12051)
data.columns = ["date", "data"]
return data
def M0(self):
data = self.download(id=12050)
data.columns = ["date", "data"]
return data
def M1(self):
data = self.download(id=12049)
data.columns = ["date", "data"]
return data
def M2(self):
data = self.download(id=12048)
data.columns = ["date", "data"]
return data
def Total_Retail_Sales_of_Consumer_Goods_LP(self):
data = self.download(id=12047)
data.columns = ["date", "data"]
return data
def Total_Retail_Sales_of_Consumer_Goods_SPLY(self):
data = self.download(id=12046)
data.columns = ["date", "data"]
return data
"""
import json
import requests
from tqdm import tqdm
urls, titles = [], []
for i in tqdm(range(5000, 20000)):
url = "https://api.cnfin.com/roll/charts/getContent?ids={}".format(i)
r = requests.get(url)
if r.ok:
data = r.json()
if data["data"] == "图表数据不存在":
pass
else:
urls.append(url)
titles.append(json.loads(data["data"]["list"][0]["modelCode"])["title"]["text"])
"""

File diff suppressed because it is too large Load Diff