Files
MoFin/venv/lib/python3.12/site-packages/akshare/economic/macro_canada.py
T
知微 fa45d8aa5f fix: 小果地址统一node122(兼容LAN+EasyTier)
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
  Privoxy对node122:18003返回500,直连正常
2026-06-30 02:56:35 +08:00

553 lines
15 KiB
Python

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2022/11/27 20:30
Desc: 东方财富-经济数据-加拿大
https://data.eastmoney.com/cjsj/foreign_5_0.html
"""
import pandas as pd
import requests
# 新屋开工
def macro_canada_new_house_rate() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-新屋开工
https://data.eastmoney.com/cjsj/foreign_7_0.html
:return: 新屋开工
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00342247")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# 失业率
def macro_canada_unemployment_rate() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-失业率
https://data.eastmoney.com/cjsj/foreign_7_1.html
:return: 失业率
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00157746")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# 贸易帐
def macro_canada_trade() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-贸易帐
https://data.eastmoney.com/cjsj/foreign_7_2.html
:return: 贸易帐
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00102022")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# 零售销售月率
def macro_canada_retail_rate_monthly() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-零售销售月率
https://data.eastmoney.com/cjsj/foreign_7_3.html
:return: 零售销售月率
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG01337094")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# 央行公布利率决议
def macro_canada_bank_rate() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-央行公布利率决议
https://data.eastmoney.com/cjsj/foreign_7_4.html
:return: 央行公布利率决议
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00342248")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# 核心消费者物价指数年率
def macro_canada_core_cpi_yearly() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-核心消费者物价指数年率
https://data.eastmoney.com/cjsj/foreign_7_5.html
:return: 核心消费者物价指数年率
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00102030")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# 核心消费者物价指数月率
def macro_canada_core_cpi_monthly() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-核心消费者物价指数月率
https://data.eastmoney.com/cjsj/foreign_7_6.html
:return: 核心消费者物价指数月率
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00102044")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# 消费者物价指数年率
def macro_canada_cpi_yearly() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-消费者物价指数年率
https://data.eastmoney.com/cjsj/foreign_7_7.html
:return: 消费者物价指数年率
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00102029")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# 消费者物价指数月率
def macro_canada_cpi_monthly() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-消费者物价指数月率
https://data.eastmoney.com/cjsj/foreign_7_8.html
:return: 消费者物价指数月率
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00158719")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
# GDP 月率
def macro_canada_gdp_monthly() -> pd.DataFrame:
"""
东方财富-经济数据-加拿大-GDP 月率
https://data.eastmoney.com/cjsj/foreign_7_9.html
:return: GDP 月率
:rtype: pandas.DataFrame
"""
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
params = {
"reportName": "RPT_ECONOMICVALUE_CA",
"columns": "ALL",
"filter": '(INDICATOR_ID="EMG00159259")',
"pageNumber": "1",
"pageSize": "2000",
"sortColumns": "REPORT_DATE",
"sortTypes": "-1",
"source": "WEB",
"client": "WEB",
"p": "1",
"pageNo": "1",
"pageNum": "1",
}
r = requests.get(url, params=params)
data_json = r.json()
temp_df = pd.DataFrame(data_json["result"]["data"])
temp_df.columns = [
"-",
"-",
"-",
"-",
"时间",
"-",
"发布日期",
"现值",
"前值",
]
temp_df = temp_df[
[
"时间",
"前值",
"现值",
"发布日期",
]
]
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"]).dt.date
return temp_df
if __name__ == "__main__":
macro_canada_new_house_rate_df = macro_canada_new_house_rate()
print(macro_canada_new_house_rate_df)
macro_canada_unemployment_rate_df = macro_canada_unemployment_rate()
print(macro_canada_unemployment_rate_df)
macro_canada_trade_df = macro_canada_trade()
print(macro_canada_trade_df)
macro_canada_retail_rate_monthly_df = macro_canada_retail_rate_monthly()
print(macro_canada_retail_rate_monthly_df)
macro_canada_bank_rate_df = macro_canada_bank_rate()
print(macro_canada_bank_rate_df)
macro_canada_core_cpi_yearly_df = macro_canada_core_cpi_yearly()
print(macro_canada_core_cpi_yearly_df)
macro_canada_core_cpi_monthly_df = macro_canada_core_cpi_monthly()
print(macro_canada_core_cpi_monthly_df)
macro_canada_cpi_yearly_df = macro_canada_cpi_yearly()
print(macro_canada_cpi_yearly_df)
macro_canada_cpi_monthly_df = macro_canada_cpi_monthly()
print(macro_canada_cpi_monthly_df)
macro_canada_gdp_monthly_df = macro_canada_gdp_monthly()
print(macro_canada_gdp_monthly_df)