add XHData
This commit is contained in:
parent
a8829a93b5
commit
a316ec5f5c
|
@ -1,6 +1,14 @@
|
||||||
import ast
|
import ast
|
||||||
|
import json
|
||||||
import requests
|
import requests
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
from tqdm import tqdm
|
||||||
|
from pygtrans import Translate
|
||||||
|
|
||||||
|
def translate(text:str=None):
|
||||||
|
client = Translate()
|
||||||
|
text = client.translate(text, target="en")
|
||||||
|
return text.translatedText
|
||||||
|
|
||||||
url = {
|
url = {
|
||||||
"CNFIN": "https://api.cnfin.com/roll/charts/"
|
"CNFIN": "https://api.cnfin.com/roll/charts/"
|
||||||
|
@ -9,215 +17,38 @@ url = {
|
||||||
class XHData(object):
|
class XHData(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def download(self, id:int=None):
|
def toc(self):
|
||||||
tmp_url = url["CNFIN"] + "getContent?ids={}".format(id)
|
urls, tid, titles, titles_en = [], [], [], []
|
||||||
|
for i in tqdm(range(12005, 12100)):
|
||||||
|
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)
|
||||||
|
tid.append(i)
|
||||||
|
title = json.loads(data["data"]["list"][0]["modelCode"])["title"]["text"]
|
||||||
|
titles.append(title)
|
||||||
|
titles_en.append(translate(text=title))
|
||||||
|
|
||||||
|
return pd.DataFrame({"urls":urls, "id":tid, "title_zh":titles, "title_en":titles_en})
|
||||||
|
|
||||||
|
def download_data(self, iid:int=None):
|
||||||
|
tmp_url = url["CNFIN"] + "getContent?ids={}".format(iid)
|
||||||
r = requests.get(tmp_url)
|
r = requests.get(tmp_url)
|
||||||
if r.ok:
|
if r.ok:
|
||||||
raw_data = r.json()
|
raw_data = r.json()
|
||||||
data = pd.DataFrame(ast.literal_eval(raw_data["data"]["list"][0]["content"]))
|
data = pd.DataFrame(ast.literal_eval(raw_data["data"]["list"][0]["content"]))
|
||||||
|
data.columns = ["date", "data"]
|
||||||
return data
|
return data
|
||||||
else:
|
else:
|
||||||
return ValueError("Something went wrong, try again later")
|
return ValueError("Something went wrong, try again later")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
def GDP(self):
|
xhdata = XHData()
|
||||||
"""
|
toc = xhdata.toc()
|
||||||
quarterly
|
data = xhdata.download_data(iid=12006) # GDP
|
||||||
"""
|
|
||||||
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"])
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ We have included multiple API for banks or statistics deparment of countries/reg
|
||||||
|
|
||||||
* Asia:
|
* Asia:
|
||||||
- [ ] `NBSCData` for [National Bureau of Statistics of China](http://www.stats.gov.cn/english/)
|
- [ ] `NBSCData` for [National Bureau of Statistics of China](http://www.stats.gov.cn/english/)
|
||||||
- [ ] `XHData` for [Xinhua](https://www.cnfin.com/data/macro-data/index.html)
|
- [x] `XHData` for [Xinhua](https://www.cnfin.com/data/macro-data/index.html)
|
||||||
- [x] `BOJData` for [Bank of Japan](https://www.boj.or.jp/en/index.htm/)
|
- [x] `BOJData` for [Bank of Japan](https://www.boj.or.jp/en/index.htm/)
|
||||||
|
|
||||||
### Market Data
|
### Market Data
|
||||||
|
|
Loading…
Reference in New Issue