akshare 1.12.95__py3-none-any.whl → 1.15.72__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of akshare might be problematic. Click here for more details.
- akshare/__init__.py +446 -139
- akshare/air/air_hebei.py +79 -53
- akshare/air/air_zhenqi.py +29 -43
- akshare/air/sunrise_tad.py +32 -17
- akshare/bank/bank_cbirc_2020.py +12 -9
- akshare/bond/bond_cb_ths.py +17 -9
- akshare/bond/bond_china.py +38 -39
- akshare/bond/bond_china_money.py +75 -48
- akshare/bond/bond_convert.py +40 -16
- akshare/bond/bond_info_cm.py +28 -8
- akshare/bond/bond_issue_cninfo.py +73 -30
- akshare/bond/{bond_zh_cov_sina.py → bond_zh_cov.py} +41 -17
- akshare/bond/bond_zh_sina.py +57 -51
- akshare/cal/__init__.py +0 -0
- akshare/cal/rv.py +170 -0
- akshare/cost/cost_living.py +7 -5
- akshare/currency/currency_safe.py +7 -6
- akshare/data/cninfo.js +15 -0
- akshare/datasets.py +10 -21
- akshare/economic/macro_bank.py +95 -653
- akshare/economic/macro_china.py +772 -1024
- akshare/economic/macro_china_hk.py +65 -243
- akshare/economic/macro_china_nbs.py +24 -7
- akshare/economic/macro_constitute.py +17 -12
- akshare/economic/macro_euro.py +13 -6
- akshare/economic/macro_finance_ths.py +133 -0
- akshare/economic/macro_info_ws.py +100 -0
- akshare/economic/macro_japan.py +5 -4
- akshare/economic/macro_other.py +12 -9
- akshare/economic/macro_usa.py +376 -1940
- akshare/economic/marco_cnbs.py +11 -6
- akshare/energy/energy_carbon.py +94 -125
- akshare/event/migration.py +3 -2
- akshare/exceptions.py +43 -0
- akshare/file_fold/calendar.json +245 -2
- akshare/fortune/fortune_500.py +15 -48
- akshare/fund/fund_amac.py +157 -75
- akshare/fund/fund_em.py +191 -184
- akshare/fund/fund_etf_em.py +20 -19
- akshare/fund/fund_etf_sina.py +71 -23
- akshare/fund/fund_etf_ths.py +93 -0
- akshare/fund/fund_fee_em.py +98 -0
- akshare/fund/fund_lof_em.py +10 -8
- akshare/fund/fund_portfolio_em.py +60 -50
- akshare/fund/fund_rank_em.py +91 -82
- akshare/fund/fund_report_cninfo.py +63 -48
- akshare/fund/fund_scale_sina.py +20 -10
- akshare/fund/fund_xq.py +139 -109
- akshare/futures/cons.py +8 -31
- akshare/futures/cot.py +185 -137
- akshare/futures/futures_basis.py +97 -32
- akshare/futures/futures_comm_ctp.py +37 -0
- akshare/futures/futures_comm_qihuo.py +74 -45
- akshare/futures/futures_daily_bar.py +121 -184
- akshare/futures/futures_hf_em.py +66 -61
- akshare/futures/futures_hq_sina.py +79 -61
- akshare/futures/futures_index_ccidx.py +6 -3
- akshare/futures/futures_inventory_99.py +61 -272
- akshare/futures/futures_news_shmet.py +4 -2
- akshare/futures/futures_roll_yield.py +12 -25
- akshare/futures/futures_spot_stock_em.py +19 -13
- akshare/futures/futures_stock_js.py +14 -12
- akshare/futures/futures_to_spot.py +38 -33
- akshare/futures/futures_warehouse_receipt.py +75 -71
- akshare/futures/futures_zh_sina.py +73 -50
- akshare/futures/symbol_var.py +18 -13
- akshare/futures_derivative/futures_contract_info_czce.py +60 -52
- akshare/futures_derivative/futures_contract_info_ine.py +43 -34
- akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
- akshare/futures_derivative/futures_cot_sina.py +26 -19
- akshare/futures_derivative/futures_spot_sys.py +21 -8
- akshare/fx/currency_investing.py +19 -285
- akshare/index/index_cflp.py +29 -26
- akshare/index/index_cni.py +86 -88
- akshare/index/index_cons.py +26 -10
- akshare/index/index_cx.py +248 -47
- akshare/index/index_drewry.py +17 -16
- akshare/index/index_hog.py +27 -26
- akshare/index/index_option_qvix.py +329 -0
- akshare/index/index_research_fund_sw.py +134 -0
- akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
- akshare/index/index_spot.py +9 -5
- akshare/index/index_stock_hk.py +35 -16
- akshare/index/index_stock_us_sina.py +1 -1
- akshare/index/index_stock_zh.py +180 -89
- akshare/index/index_stock_zh_csindex.py +15 -369
- akshare/index/index_sw.py +62 -34
- akshare/index/index_yw.py +46 -23
- akshare/index/index_zh_a_scope.py +48 -0
- akshare/index/index_zh_em.py +17 -14
- akshare/interest_rate/interbank_rate_em.py +14 -9
- akshare/movie/artist_yien.py +32 -5
- akshare/movie/movie_yien.py +92 -18
- akshare/movie/video_yien.py +28 -5
- akshare/news/news_baidu.py +78 -44
- akshare/news/news_cctv.py +38 -38
- akshare/news/news_stock.py +6 -3
- akshare/nlp/nlp_interface.py +7 -8
- akshare/option/cons.py +11 -11
- akshare/option/option_comm_qihuo.py +86 -0
- akshare/option/option_commodity.py +178 -51
- akshare/option/option_daily_stats_sse_szse.py +146 -0
- akshare/option/option_em.py +147 -138
- akshare/option/option_finance_sina.py +160 -137
- akshare/option/option_lhb_em.py +62 -56
- akshare/option/option_risk_indicator_sse.py +17 -14
- akshare/other/other_car_cpca.py +934 -0
- akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
- akshare/qdii/__init__.py +0 -0
- akshare/qdii/qdii_jsl.py +233 -0
- akshare/request.py +117 -0
- akshare/spot/spot_hog_soozhu.py +232 -0
- akshare/spot/spot_price_qh.py +121 -0
- akshare/spot/spot_sge.py +63 -10
- akshare/stock/stock_allotment_cninfo.py +10 -9
- akshare/stock/stock_ask_bid_em.py +27 -3
- akshare/stock/stock_board_concept_em.py +23 -14
- akshare/stock/stock_board_industry_em.py +40 -34
- akshare/stock/stock_cg_equity_mortgage.py +15 -11
- akshare/stock/stock_cg_guarantee.py +41 -51
- akshare/stock/stock_cg_lawsuit.py +36 -35
- akshare/stock/stock_dividend_cninfo.py +12 -6
- akshare/stock/stock_dzjy_em.py +347 -260
- akshare/stock/stock_fund_em.py +332 -84
- akshare/stock/stock_hk_famous.py +108 -0
- akshare/stock/stock_hk_sina.py +8 -7
- akshare/stock/stock_hold_control_cninfo.py +100 -15
- akshare/stock/stock_hold_control_em.py +4 -3
- akshare/stock/stock_hold_num_cninfo.py +18 -12
- akshare/stock/stock_hot_rank_em.py +2 -1
- akshare/stock/stock_hot_search_baidu.py +5 -2
- akshare/stock/stock_industry_cninfo.py +24 -18
- akshare/stock/stock_industry_pe_cninfo.py +45 -31
- akshare/stock/stock_industry_sw.py +9 -10
- akshare/stock/stock_info.py +25 -15
- akshare/stock/stock_info_em.py +5 -2
- akshare/stock/stock_intraday_em.py +5 -2
- akshare/stock/stock_intraday_sina.py +22 -18
- akshare/stock/stock_ipo_summary_cninfo.py +25 -10
- akshare/stock/stock_new_cninfo.py +32 -19
- akshare/stock/stock_news_cx.py +39 -0
- akshare/stock/stock_profile_cninfo.py +9 -8
- akshare/stock/stock_rank_forecast.py +8 -6
- akshare/stock/stock_share_changes_cninfo.py +18 -14
- akshare/stock/stock_share_hold.py +24 -19
- akshare/stock/stock_summary.py +54 -26
- akshare/stock/stock_us_famous.py +15 -6
- akshare/stock/stock_us_pink.py +7 -5
- akshare/stock/stock_us_sina.py +15 -12
- akshare/stock/stock_xq.py +38 -12
- akshare/stock/stock_zh_a_sina.py +53 -78
- akshare/stock/stock_zh_b_sina.py +32 -55
- akshare/stock/stock_zh_kcb_report.py +11 -9
- akshare/stock/stock_zh_kcb_sina.py +67 -64
- akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
- akshare/stock_feature/stock_a_high_low.py +5 -2
- akshare/stock_feature/stock_a_indicator.py +12 -9
- akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
- akshare/stock_feature/stock_account_em.py +58 -40
- akshare/stock_feature/stock_analyst_em.py +36 -27
- akshare/stock_feature/stock_board_industry_ths.py +136 -400
- akshare/stock_feature/stock_comment_em.py +118 -85
- akshare/stock_feature/stock_concept_futu.py +183 -0
- akshare/stock_feature/stock_cyq_em.py +58 -54
- akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
- akshare/stock_feature/stock_esg_sina.py +216 -11
- akshare/stock_feature/stock_fhps_em.py +60 -25
- akshare/stock_feature/stock_fhps_ths.py +25 -6
- akshare/stock_feature/stock_fund_flow.py +38 -25
- akshare/stock_feature/stock_gdfx_em.py +180 -95
- akshare/stock_feature/stock_gdhs.py +73 -49
- akshare/stock_feature/stock_gpzy_em.py +78 -46
- akshare/stock_feature/stock_hist_em.py +164 -111
- akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
- akshare/stock_feature/stock_hsgt_em.py +184 -452
- akshare/stock_feature/stock_info.py +52 -29
- akshare/stock_feature/stock_inner_trade_xq.py +39 -31
- akshare/stock_feature/stock_irm_cninfo.py +32 -9
- akshare/stock_feature/stock_jgdy_em.py +41 -38
- akshare/stock_feature/stock_lh_yybpm.py +36 -37
- akshare/stock_feature/stock_lhb_em.py +135 -71
- akshare/stock_feature/stock_lhb_sina.py +93 -46
- akshare/stock_feature/stock_margin_em.py +102 -0
- akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
- akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
- akshare/stock_feature/stock_market_legu.py +13 -8
- akshare/stock_feature/stock_pankou_em.py +72 -34
- akshare/stock_feature/stock_report_em.py +244 -54
- akshare/stock_feature/stock_research_report_em.py +48 -19
- akshare/stock_feature/stock_sns_sseinfo.py +15 -12
- akshare/stock_feature/stock_sy_em.py +86 -33
- akshare/stock_feature/stock_technology_ths.py +152 -120
- akshare/stock_feature/stock_tfp_em.py +35 -13
- akshare/stock_feature/stock_three_report_em.py +119 -77
- akshare/stock_feature/stock_ttm_lyr.py +4 -7
- akshare/stock_feature/stock_value_em.py +83 -0
- akshare/stock_feature/stock_wencai.py +21 -9
- akshare/stock_feature/stock_yjyg_em.py +63 -28
- akshare/stock_feature/stock_zf_pg.py +61 -38
- akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
- akshare/stock_feature/stock_ztb_em.py +62 -40
- akshare/stock_fundamental/stock_finance.py +150 -58
- akshare/stock_fundamental/stock_finance_ths.py +116 -31
- akshare/stock_fundamental/stock_mda_ym.py +5 -3
- akshare/stock_fundamental/stock_notice.py +29 -15
- akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
- akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
- akshare/stock_fundamental/stock_register_em.py +448 -0
- akshare/stock_fundamental/stock_restricted_em.py +79 -32
- akshare/stock_fundamental/stock_zygc.py +10 -8
- akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
- akshare/tool/trade_date_hist.py +4 -3
- akshare/utils/cons.py +10 -0
- akshare/utils/context.py +43 -0
- akshare/utils/demjson.py +2 -2
- akshare/utils/func.py +26 -0
- akshare/utils/tqdm.py +13 -3
- {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/METADATA +52 -69
- akshare-1.15.72.dist-info/RECORD +385 -0
- {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/WHEEL +1 -1
- tests/test_func.py +3 -5
- akshare/bond/bond_futures.py +0 -50
- akshare/bond/bond_investing.py +0 -139
- akshare/crypto/crypto_hist_investing.py +0 -249
- akshare/fortune/fortune_it_juzi.py +0 -123
- akshare/futures/futures_international.py +0 -170
- akshare/futures/futures_news_baidu.py +0 -54
- akshare/futures/inventory_data.py +0 -100
- akshare/futures_derivative/futures_index_price_nh.py +0 -61
- akshare/futures_derivative/futures_index_return_nh.py +0 -47
- akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
- akshare/futures_derivative/futures_other_index_nh.py +0 -145
- akshare/index/index_fear_greed_funddb.py +0 -71
- akshare/index/index_investing.py +0 -232
- akshare/sport/sport_olympic_winter.py +0 -39
- akshare/stock_feature/stock_board_concept_ths.py +0 -422
- akshare/stock_fundamental/stock_register.py +0 -292
- akshare-1.12.95.dist-info/RECORD +0 -374
- {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/LICENSE +0 -0
- {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/top_level.txt +0 -0
|
@@ -1,50 +1,80 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/4/3 16:21
|
|
5
5
|
Desc: 中国-香港-宏观指标
|
|
6
6
|
https://data.eastmoney.com/cjsj/foreign_8_0.html
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
11
|
-
from akshare.utils import demjson
|
|
12
|
-
|
|
13
12
|
|
|
14
|
-
def
|
|
13
|
+
def macro_china_hk_core(symbol: str = "EMG00341602") -> pd.DataFrame:
|
|
15
14
|
"""
|
|
16
|
-
|
|
17
|
-
https://data.eastmoney.com/cjsj/
|
|
18
|
-
:
|
|
15
|
+
东方财富-数据中心-经济数据一览-宏观经济-日本-核心代码
|
|
16
|
+
https://data.eastmoney.com/cjsj/foreign_1_0.html
|
|
17
|
+
:param symbol: 代码
|
|
18
|
+
:type symbol: str
|
|
19
|
+
:return: 指定 symbol 的数据
|
|
19
20
|
:rtype: pandas.DataFrame
|
|
20
21
|
"""
|
|
21
|
-
url = "https://
|
|
22
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
22
23
|
params = {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
24
|
+
"reportName": "RPT_ECONOMICVALUE_HK",
|
|
25
|
+
"columns": "ALL",
|
|
26
|
+
"filter": f'(INDICATOR_ID="{symbol}")',
|
|
27
|
+
"pageNumber": "1",
|
|
28
|
+
"pageSize": "5000",
|
|
29
|
+
"sortColumns": "REPORT_DATE",
|
|
30
|
+
"sortTypes": "-1",
|
|
31
|
+
"source": "WEB",
|
|
32
|
+
"client": "WEB",
|
|
26
33
|
"p": "1",
|
|
27
|
-
"ps": "2000",
|
|
28
|
-
"mkt": "8",
|
|
29
|
-
"stat": "0",
|
|
30
34
|
"pageNo": "1",
|
|
31
35
|
"pageNum": "1",
|
|
32
|
-
"_": "
|
|
36
|
+
"_": "1667639896816",
|
|
33
37
|
}
|
|
34
38
|
r = requests.get(url, params=params)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
temp_df
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
data_json = r.json()
|
|
40
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
41
|
+
temp_df.rename(
|
|
42
|
+
columns={
|
|
43
|
+
"COUNTRY": "-",
|
|
44
|
+
"INDICATOR_ID": "-",
|
|
45
|
+
"INDICATOR_NAME": "-",
|
|
46
|
+
"REPORT_DATE_CH": "时间",
|
|
47
|
+
"REPORT_DATE": "-",
|
|
48
|
+
"PUBLISH_DATE": "发布日期",
|
|
49
|
+
"VALUE": "现值",
|
|
50
|
+
"PRE_VALUE": "前值",
|
|
51
|
+
"INDICATOR_IDOLD": "-",
|
|
52
|
+
},
|
|
53
|
+
inplace=True,
|
|
54
|
+
)
|
|
55
|
+
temp_df = temp_df[
|
|
56
|
+
[
|
|
57
|
+
"时间",
|
|
58
|
+
"前值",
|
|
59
|
+
"现值",
|
|
60
|
+
"发布日期",
|
|
61
|
+
]
|
|
43
62
|
]
|
|
44
|
-
temp_df[
|
|
45
|
-
temp_df[
|
|
46
|
-
temp_df[
|
|
47
|
-
temp_df[
|
|
63
|
+
temp_df["前值"] = pd.to_numeric(temp_df["前值"], errors="coerce")
|
|
64
|
+
temp_df["现值"] = pd.to_numeric(temp_df["现值"], errors="coerce")
|
|
65
|
+
temp_df["发布日期"] = pd.to_datetime(temp_df["发布日期"], errors="coerce").dt.date
|
|
66
|
+
temp_df.sort_values(["发布日期"], inplace=True, ignore_index=True)
|
|
67
|
+
return temp_df
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def macro_china_hk_cpi() -> pd.DataFrame:
|
|
71
|
+
"""
|
|
72
|
+
东方财富-经济数据一览-中国香港-消费者物价指数
|
|
73
|
+
https://data.eastmoney.com/cjsj/foreign_8_0.html
|
|
74
|
+
:return: 消费者物价指数
|
|
75
|
+
:rtype: pandas.DataFrame
|
|
76
|
+
"""
|
|
77
|
+
temp_df = macro_china_hk_core(symbol="EMG01336996")
|
|
48
78
|
return temp_df
|
|
49
79
|
|
|
50
80
|
|
|
@@ -55,33 +85,7 @@ def macro_china_hk_cpi_ratio() -> pd.DataFrame:
|
|
|
55
85
|
:return: 消费者物价指数年率
|
|
56
86
|
:rtype: pandas.DataFrame
|
|
57
87
|
"""
|
|
58
|
-
|
|
59
|
-
params = {
|
|
60
|
-
"type": "GJZB",
|
|
61
|
-
"sty": "HKZB",
|
|
62
|
-
"js": "({data:[(x)],pages:(pc)})",
|
|
63
|
-
"p": "1",
|
|
64
|
-
"ps": "2000",
|
|
65
|
-
"mkt": "8",
|
|
66
|
-
"stat": "1",
|
|
67
|
-
"pageNo": "1",
|
|
68
|
-
"pageNum": "1",
|
|
69
|
-
"_": "1621332091873",
|
|
70
|
-
}
|
|
71
|
-
r = requests.get(url, params=params)
|
|
72
|
-
data_text = r.text
|
|
73
|
-
data_json = demjson.decode(data_text[1:-1])
|
|
74
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]])
|
|
75
|
-
temp_df.columns = [
|
|
76
|
-
"时间",
|
|
77
|
-
"前值",
|
|
78
|
-
"现值",
|
|
79
|
-
"发布日期",
|
|
80
|
-
]
|
|
81
|
-
temp_df['前值'] = pd.to_numeric(temp_df['前值'])
|
|
82
|
-
temp_df['现值'] = pd.to_numeric(temp_df['现值'])
|
|
83
|
-
temp_df['时间'] = pd.to_datetime(temp_df['时间']).dt.date
|
|
84
|
-
temp_df['发布日期'] = pd.to_datetime(temp_df['发布日期']).dt.date
|
|
88
|
+
temp_df = macro_china_hk_core(symbol="EMG00059282")
|
|
85
89
|
return temp_df
|
|
86
90
|
|
|
87
91
|
|
|
@@ -92,33 +96,7 @@ def macro_china_hk_rate_of_unemployment() -> pd.DataFrame:
|
|
|
92
96
|
:return: 失业率
|
|
93
97
|
:rtype: pandas.DataFrame
|
|
94
98
|
"""
|
|
95
|
-
|
|
96
|
-
params = {
|
|
97
|
-
"type": "GJZB",
|
|
98
|
-
"sty": "HKZB",
|
|
99
|
-
"js": "({data:[(x)],pages:(pc)})",
|
|
100
|
-
"p": "1",
|
|
101
|
-
"ps": "2000",
|
|
102
|
-
"mkt": "8",
|
|
103
|
-
"stat": "2",
|
|
104
|
-
"pageNo": "1",
|
|
105
|
-
"pageNum": "1",
|
|
106
|
-
"_": "1621332091873",
|
|
107
|
-
}
|
|
108
|
-
r = requests.get(url, params=params)
|
|
109
|
-
data_text = r.text
|
|
110
|
-
data_json = demjson.decode(data_text[1:-1])
|
|
111
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]])
|
|
112
|
-
temp_df.columns = [
|
|
113
|
-
"时间",
|
|
114
|
-
"前值",
|
|
115
|
-
"现值",
|
|
116
|
-
"发布日期",
|
|
117
|
-
]
|
|
118
|
-
temp_df['前值'] = pd.to_numeric(temp_df['前值'])
|
|
119
|
-
temp_df['现值'] = pd.to_numeric(temp_df['现值'])
|
|
120
|
-
temp_df['时间'] = pd.to_datetime(temp_df['时间']).dt.date
|
|
121
|
-
temp_df['发布日期'] = pd.to_datetime(temp_df['发布日期']).dt.date
|
|
99
|
+
temp_df = macro_china_hk_core(symbol="EMG00059647")
|
|
122
100
|
return temp_df
|
|
123
101
|
|
|
124
102
|
|
|
@@ -129,33 +107,7 @@ def macro_china_hk_gbp() -> pd.DataFrame:
|
|
|
129
107
|
:return: 香港 GDP
|
|
130
108
|
:rtype: pandas.DataFrame
|
|
131
109
|
"""
|
|
132
|
-
|
|
133
|
-
params = {
|
|
134
|
-
"type": "GJZB",
|
|
135
|
-
"sty": "HKZB",
|
|
136
|
-
"js": "({data:[(x)],pages:(pc)})",
|
|
137
|
-
"p": "1",
|
|
138
|
-
"ps": "2000",
|
|
139
|
-
"mkt": "8",
|
|
140
|
-
"stat": "3",
|
|
141
|
-
"pageNo": "1",
|
|
142
|
-
"pageNum": "1",
|
|
143
|
-
"_": "1621332091873",
|
|
144
|
-
}
|
|
145
|
-
r = requests.get(url, params=params)
|
|
146
|
-
data_text = r.text
|
|
147
|
-
data_json = demjson.decode(data_text[1:-1])
|
|
148
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]])
|
|
149
|
-
temp_df.columns = [
|
|
150
|
-
"时间",
|
|
151
|
-
"前值",
|
|
152
|
-
"现值",
|
|
153
|
-
"发布日期",
|
|
154
|
-
]
|
|
155
|
-
temp_df['前值'] = pd.to_numeric(temp_df['前值']) / 100
|
|
156
|
-
temp_df['现值'] = pd.to_numeric(temp_df['现值']) / 100
|
|
157
|
-
temp_df['时间'] = pd.to_datetime(temp_df['时间']).dt.date
|
|
158
|
-
temp_df['发布日期'] = pd.to_datetime(temp_df['发布日期']).dt.date
|
|
110
|
+
temp_df = macro_china_hk_core(symbol="EMG01337008")
|
|
159
111
|
return temp_df
|
|
160
112
|
|
|
161
113
|
|
|
@@ -166,33 +118,7 @@ def macro_china_hk_gbp_ratio() -> pd.DataFrame:
|
|
|
166
118
|
:return: 香港 GDP 同比
|
|
167
119
|
:rtype: pandas.DataFrame
|
|
168
120
|
"""
|
|
169
|
-
|
|
170
|
-
params = {
|
|
171
|
-
"type": "GJZB",
|
|
172
|
-
"sty": "HKZB",
|
|
173
|
-
"js": "({data:[(x)],pages:(pc)})",
|
|
174
|
-
"p": "1",
|
|
175
|
-
"ps": "2000",
|
|
176
|
-
"mkt": "8",
|
|
177
|
-
"stat": "4",
|
|
178
|
-
"pageNo": "1",
|
|
179
|
-
"pageNum": "1",
|
|
180
|
-
"_": "1621332091873",
|
|
181
|
-
}
|
|
182
|
-
r = requests.get(url, params=params)
|
|
183
|
-
data_text = r.text
|
|
184
|
-
data_json = demjson.decode(data_text[1:-1])
|
|
185
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]])
|
|
186
|
-
temp_df.columns = [
|
|
187
|
-
"时间",
|
|
188
|
-
"前值",
|
|
189
|
-
"现值",
|
|
190
|
-
"发布日期",
|
|
191
|
-
]
|
|
192
|
-
temp_df['前值'] = pd.to_numeric(temp_df['前值'])
|
|
193
|
-
temp_df['现值'] = pd.to_numeric(temp_df['现值'])
|
|
194
|
-
temp_df['时间'] = pd.to_datetime(temp_df['时间']).dt.date
|
|
195
|
-
temp_df['发布日期'] = pd.to_datetime(temp_df['发布日期']).dt.date
|
|
121
|
+
temp_df = macro_china_hk_core(symbol="EMG01337009")
|
|
196
122
|
return temp_df
|
|
197
123
|
|
|
198
124
|
|
|
@@ -203,33 +129,7 @@ def macro_china_hk_building_volume() -> pd.DataFrame:
|
|
|
203
129
|
:return: 香港楼宇买卖合约数量
|
|
204
130
|
:rtype: pandas.DataFrame
|
|
205
131
|
"""
|
|
206
|
-
|
|
207
|
-
params = {
|
|
208
|
-
"type": "GJZB",
|
|
209
|
-
"sty": "HKZB",
|
|
210
|
-
"js": "({data:[(x)],pages:(pc)})",
|
|
211
|
-
"p": "1",
|
|
212
|
-
"ps": "2000",
|
|
213
|
-
"mkt": "8",
|
|
214
|
-
"stat": "5",
|
|
215
|
-
"pageNo": "1",
|
|
216
|
-
"pageNum": "1",
|
|
217
|
-
"_": "1621332091873",
|
|
218
|
-
}
|
|
219
|
-
r = requests.get(url, params=params)
|
|
220
|
-
data_text = r.text
|
|
221
|
-
data_json = demjson.decode(data_text[1:-1])
|
|
222
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]])
|
|
223
|
-
temp_df.columns = [
|
|
224
|
-
"时间",
|
|
225
|
-
"前值",
|
|
226
|
-
"现值",
|
|
227
|
-
"发布日期",
|
|
228
|
-
]
|
|
229
|
-
temp_df['前值'] = pd.to_numeric(temp_df['前值'])
|
|
230
|
-
temp_df['现值'] = pd.to_numeric(temp_df['现值'])
|
|
231
|
-
temp_df['时间'] = pd.to_datetime(temp_df['时间']).dt.date
|
|
232
|
-
temp_df['发布日期'] = pd.to_datetime(temp_df['发布日期']).dt.date
|
|
132
|
+
temp_df = macro_china_hk_core(symbol="EMG00158055")
|
|
233
133
|
return temp_df
|
|
234
134
|
|
|
235
135
|
|
|
@@ -240,33 +140,7 @@ def macro_china_hk_building_amount() -> pd.DataFrame:
|
|
|
240
140
|
:return: 香港楼宇买卖合约成交金额
|
|
241
141
|
:rtype: pandas.DataFrame
|
|
242
142
|
"""
|
|
243
|
-
|
|
244
|
-
params = {
|
|
245
|
-
"type": "GJZB",
|
|
246
|
-
"sty": "HKZB",
|
|
247
|
-
"js": "({data:[(x)],pages:(pc)})",
|
|
248
|
-
"p": "1",
|
|
249
|
-
"ps": "2000",
|
|
250
|
-
"mkt": "8",
|
|
251
|
-
"stat": "6",
|
|
252
|
-
"pageNo": "1",
|
|
253
|
-
"pageNum": "1",
|
|
254
|
-
"_": "1621332091873",
|
|
255
|
-
}
|
|
256
|
-
r = requests.get(url, params=params)
|
|
257
|
-
data_text = r.text
|
|
258
|
-
data_json = demjson.decode(data_text[1:-1])
|
|
259
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]])
|
|
260
|
-
temp_df.columns = [
|
|
261
|
-
"时间",
|
|
262
|
-
"前值",
|
|
263
|
-
"现值",
|
|
264
|
-
"发布日期",
|
|
265
|
-
]
|
|
266
|
-
temp_df['前值'] = pd.to_numeric(temp_df['前值']) / 100
|
|
267
|
-
temp_df['现值'] = pd.to_numeric(temp_df['现值']) / 100
|
|
268
|
-
temp_df['时间'] = pd.to_datetime(temp_df['时间']).dt.date
|
|
269
|
-
temp_df['发布日期'] = pd.to_datetime(temp_df['发布日期']).dt.date
|
|
143
|
+
temp_df = macro_china_hk_core(symbol="EMG00158066")
|
|
270
144
|
return temp_df
|
|
271
145
|
|
|
272
146
|
|
|
@@ -277,33 +151,7 @@ def macro_china_hk_trade_diff_ratio() -> pd.DataFrame:
|
|
|
277
151
|
:return: 香港商品贸易差额年率
|
|
278
152
|
:rtype: pandas.DataFrame
|
|
279
153
|
"""
|
|
280
|
-
|
|
281
|
-
params = {
|
|
282
|
-
"type": "GJZB",
|
|
283
|
-
"sty": "HKZB",
|
|
284
|
-
"js": "({data:[(x)],pages:(pc)})",
|
|
285
|
-
"p": "1",
|
|
286
|
-
"ps": "2000",
|
|
287
|
-
"mkt": "8",
|
|
288
|
-
"stat": "7",
|
|
289
|
-
"pageNo": "1",
|
|
290
|
-
"pageNum": "1",
|
|
291
|
-
"_": "1621332091873",
|
|
292
|
-
}
|
|
293
|
-
r = requests.get(url, params=params)
|
|
294
|
-
data_text = r.text
|
|
295
|
-
data_json = demjson.decode(data_text[1:-1])
|
|
296
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]])
|
|
297
|
-
temp_df.columns = [
|
|
298
|
-
"时间",
|
|
299
|
-
"前值",
|
|
300
|
-
"现值",
|
|
301
|
-
"发布日期",
|
|
302
|
-
]
|
|
303
|
-
temp_df['前值'] = pd.to_numeric(temp_df['前值'])
|
|
304
|
-
temp_df['现值'] = pd.to_numeric(temp_df['现值'])
|
|
305
|
-
temp_df['时间'] = pd.to_datetime(temp_df['时间']).dt.date
|
|
306
|
-
temp_df['发布日期'] = pd.to_datetime(temp_df['发布日期']).dt.date
|
|
154
|
+
temp_df = macro_china_hk_core(symbol="EMG00157898")
|
|
307
155
|
return temp_df
|
|
308
156
|
|
|
309
157
|
|
|
@@ -314,33 +162,7 @@ def macro_china_hk_ppi() -> pd.DataFrame:
|
|
|
314
162
|
:return: 香港制造业 PPI 年率
|
|
315
163
|
:rtype: pandas.DataFrame
|
|
316
164
|
"""
|
|
317
|
-
|
|
318
|
-
params = {
|
|
319
|
-
"type": "GJZB",
|
|
320
|
-
"sty": "HKZB",
|
|
321
|
-
"js": "({data:[(x)],pages:(pc)})",
|
|
322
|
-
"p": "1",
|
|
323
|
-
"ps": "2000",
|
|
324
|
-
"mkt": "8",
|
|
325
|
-
"stat": "8",
|
|
326
|
-
"pageNo": "1",
|
|
327
|
-
"pageNum": "1",
|
|
328
|
-
"_": "1621332091873",
|
|
329
|
-
}
|
|
330
|
-
r = requests.get(url, params=params)
|
|
331
|
-
data_text = r.text
|
|
332
|
-
data_json = demjson.decode(data_text[1:-1])
|
|
333
|
-
temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]])
|
|
334
|
-
temp_df.columns = [
|
|
335
|
-
"时间",
|
|
336
|
-
"前值",
|
|
337
|
-
"现值",
|
|
338
|
-
"发布日期",
|
|
339
|
-
]
|
|
340
|
-
temp_df['前值'] = pd.to_numeric(temp_df['前值'])
|
|
341
|
-
temp_df['现值'] = pd.to_numeric(temp_df['现值'])
|
|
342
|
-
temp_df['时间'] = pd.to_datetime(temp_df['时间']).dt.date
|
|
343
|
-
temp_df['发布日期'] = pd.to_datetime(temp_df['发布日期']).dt.date
|
|
165
|
+
temp_df = macro_china_hk_core(symbol="EMG00157818")
|
|
344
166
|
return temp_df
|
|
345
167
|
|
|
346
168
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/6/30 22:00
|
|
5
5
|
Desc: 中国-国家统计局-宏观数据
|
|
6
6
|
https://data.stats.gov.cn/easyquery.htm
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import time
|
|
9
10
|
from functools import lru_cache
|
|
10
11
|
from typing import Union, Literal, List, Dict
|
|
@@ -54,7 +55,8 @@ def _get_nbs_wds_tree(idcode: str, dbcode: str, rowcode: str) -> List[Dict]:
|
|
|
54
55
|
"k1": str(time.time_ns())[:13],
|
|
55
56
|
}
|
|
56
57
|
r = requests.post(url, params=params, verify=False, allow_redirects=True)
|
|
57
|
-
data_json = r.json()
|
|
58
|
+
data_json = r.json()
|
|
59
|
+
data_json = data_json["returndata"][0]["nodes"]
|
|
58
60
|
return data_json
|
|
59
61
|
|
|
60
62
|
|
|
@@ -78,7 +80,7 @@ def macro_china_nbs_nation(
|
|
|
78
80
|
) -> pd.DataFrame:
|
|
79
81
|
"""
|
|
80
82
|
国家统计局全国数据通用接口
|
|
81
|
-
|
|
83
|
+
https://data.stats.gov.cn/easyquery.htm
|
|
82
84
|
:param kind: 数据类别
|
|
83
85
|
:param path: 数据路径
|
|
84
86
|
:param period: 时间区间,例如'LAST10', '2016-2023', '2016-'等
|
|
@@ -146,7 +148,13 @@ def macro_china_nbs_nation(
|
|
|
146
148
|
|
|
147
149
|
def macro_china_nbs_region(
|
|
148
150
|
kind: Literal[
|
|
149
|
-
"分省月度数据",
|
|
151
|
+
"分省月度数据",
|
|
152
|
+
"分省季度数据",
|
|
153
|
+
"分省年度数据",
|
|
154
|
+
"主要城市月度价格",
|
|
155
|
+
"主要城市年度数据",
|
|
156
|
+
"港澳台月度数据",
|
|
157
|
+
"港澳台年度数据",
|
|
150
158
|
],
|
|
151
159
|
path: str,
|
|
152
160
|
indicator: Union[str, None],
|
|
@@ -261,16 +269,25 @@ def macro_china_nbs_region(
|
|
|
261
269
|
|
|
262
270
|
if __name__ == "__main__":
|
|
263
271
|
macro_china_nbs_nation_df = macro_china_nbs_nation(
|
|
264
|
-
kind="月度数据",
|
|
272
|
+
kind="月度数据",
|
|
273
|
+
path="工业 > 工业分大类行业出口交货值(2018-至今) > 废弃资源综合利用业",
|
|
274
|
+
period="LAST5",
|
|
265
275
|
)
|
|
266
276
|
print(macro_china_nbs_nation_df)
|
|
267
277
|
|
|
268
278
|
macro_china_nbs_region_df = macro_china_nbs_region(
|
|
269
|
-
"分省季度数据",
|
|
279
|
+
kind="分省季度数据",
|
|
280
|
+
path="人民生活 > 居民人均可支配收入",
|
|
281
|
+
period="2018-2022",
|
|
282
|
+
indicator=None,
|
|
283
|
+
region="北京市",
|
|
270
284
|
)
|
|
271
285
|
print(macro_china_nbs_region_df)
|
|
272
286
|
|
|
273
287
|
macro_china_nbs_region_df = macro_china_nbs_region(
|
|
274
|
-
"分省季度数据",
|
|
288
|
+
kind="分省季度数据",
|
|
289
|
+
path="国民经济核算 > 地区生产总值",
|
|
290
|
+
period="2018-",
|
|
291
|
+
indicator="地区生产总值_累计值(亿元)",
|
|
275
292
|
)
|
|
276
293
|
print(macro_china_nbs_region_df)
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/4/3 16:08
|
|
5
5
|
Desc: 金十数据-数据中心-主要机构-宏观经济
|
|
6
6
|
https://datacenter.jin10.com/
|
|
7
7
|
"""
|
|
8
|
+
|
|
9
|
+
import datetime
|
|
8
10
|
import time
|
|
9
11
|
|
|
10
12
|
import pandas as pd
|
|
11
13
|
import requests
|
|
12
14
|
from tqdm import tqdm
|
|
13
|
-
import datetime
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
def macro_cons_gold() -> pd.DataFrame:
|
|
@@ -22,7 +23,8 @@ def macro_cons_gold() -> pd.DataFrame:
|
|
|
22
23
|
"""
|
|
23
24
|
t = time.time()
|
|
24
25
|
headers = {
|
|
25
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
26
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
27
|
+
"Chrome/107.0.0.0 Safari/537.36",
|
|
26
28
|
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
27
29
|
"x-csrf-token": "x-csrf-token",
|
|
28
30
|
"x-version": "1.0.0",
|
|
@@ -41,7 +43,7 @@ def macro_cons_gold() -> pd.DataFrame:
|
|
|
41
43
|
if not data_json["data"]["values"]:
|
|
42
44
|
break
|
|
43
45
|
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
44
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
46
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
45
47
|
last_date_str = temp_df.iat[-1, 0]
|
|
46
48
|
last_date_str = (
|
|
47
49
|
(
|
|
@@ -68,7 +70,7 @@ def macro_cons_gold() -> pd.DataFrame:
|
|
|
68
70
|
"总价值",
|
|
69
71
|
]
|
|
70
72
|
]
|
|
71
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
73
|
+
big_df["日期"] = pd.to_datetime(big_df["日期"], errors="coerce").dt.date
|
|
72
74
|
big_df["总库存"] = pd.to_numeric(big_df["总库存"], errors="coerce")
|
|
73
75
|
big_df["增持/减持"] = pd.to_numeric(big_df["增持/减持"], errors="coerce")
|
|
74
76
|
big_df["总价值"] = pd.to_numeric(big_df["总价值"], errors="coerce")
|
|
@@ -86,7 +88,8 @@ def macro_cons_silver() -> pd.DataFrame:
|
|
|
86
88
|
"""
|
|
87
89
|
t = time.time()
|
|
88
90
|
headers = {
|
|
89
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
91
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
92
|
+
"Chrome/107.0.0.0 Safari/537.36",
|
|
90
93
|
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
91
94
|
"x-csrf-token": "x-csrf-token",
|
|
92
95
|
"x-version": "1.0.0",
|
|
@@ -105,7 +108,7 @@ def macro_cons_silver() -> pd.DataFrame:
|
|
|
105
108
|
if not data_json["data"]["values"]:
|
|
106
109
|
break
|
|
107
110
|
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
108
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
111
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
109
112
|
last_date_str = temp_df.iat[-1, 0]
|
|
110
113
|
last_date_str = (
|
|
111
114
|
(
|
|
@@ -132,7 +135,7 @@ def macro_cons_silver() -> pd.DataFrame:
|
|
|
132
135
|
"总价值",
|
|
133
136
|
]
|
|
134
137
|
]
|
|
135
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
138
|
+
big_df["日期"] = pd.to_datetime(big_df["日期"], errors="coerce").dt.date
|
|
136
139
|
big_df["总库存"] = pd.to_numeric(big_df["总库存"], errors="coerce")
|
|
137
140
|
big_df["增持/减持"] = pd.to_numeric(big_df["增持/减持"], errors="coerce")
|
|
138
141
|
big_df["总价值"] = pd.to_numeric(big_df["总价值"], errors="coerce")
|
|
@@ -163,13 +166,14 @@ def macro_cons_opec_month() -> pd.DataFrame:
|
|
|
163
166
|
"referer": "https://datacenter.jin10.com/reportType/dc_opec_report",
|
|
164
167
|
"sec-fetch-mode": "cors",
|
|
165
168
|
"sec-fetch-site": "same-site",
|
|
166
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
169
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
170
|
+
"Chrome/79.0.3945.117 Safari/537.36",
|
|
167
171
|
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
168
172
|
"x-csrf-token": "",
|
|
169
173
|
"x-version": "1.0.0",
|
|
170
174
|
}
|
|
171
175
|
res = requests.get(
|
|
172
|
-
f"https://datacenter-api.jin10.com/reports/dates?category=opec&_={str(int(round(t * 1000)))}",
|
|
176
|
+
url=f"https://datacenter-api.jin10.com/reports/dates?category=opec&_={str(int(round(t * 1000)))}",
|
|
173
177
|
headers=headers,
|
|
174
178
|
) # 日期序列
|
|
175
179
|
all_date_list = res.json()["data"]
|
|
@@ -177,7 +181,8 @@ def macro_cons_opec_month() -> pd.DataFrame:
|
|
|
177
181
|
for item in bar:
|
|
178
182
|
bar.set_description(f"Please wait for a moment, now downloading {item}'s data")
|
|
179
183
|
res = requests.get(
|
|
180
|
-
f"https://datacenter-api.jin10.com/reports/list?
|
|
184
|
+
url=f"https://datacenter-api.jin10.com/reports/list?"
|
|
185
|
+
f"category=opec&date={item}&_={str(int(round(t * 1000)))}",
|
|
181
186
|
headers=headers,
|
|
182
187
|
)
|
|
183
188
|
temp_df = pd.DataFrame(
|
|
@@ -203,7 +208,7 @@ def macro_cons_opec_month() -> pd.DataFrame:
|
|
|
203
208
|
"欧佩克产量",
|
|
204
209
|
]
|
|
205
210
|
].iloc[-2, :]
|
|
206
|
-
except:
|
|
211
|
+
except: # noqa: E722
|
|
207
212
|
temp_df = temp_df[
|
|
208
213
|
[
|
|
209
214
|
"阿尔及利亚",
|
akshare/economic/macro_euro.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/4/3 17:08
|
|
5
5
|
Desc: 金十数据中心-经济指标-欧元区
|
|
6
6
|
金十数据中心-经济指标-欧元区-国民经济运行状况-经济状况
|
|
7
7
|
金十数据中心-经济指标-欧元区-国民经济运行状况-物价水平
|
|
@@ -10,6 +10,7 @@ Desc: 金十数据中心-经济指标-欧元区
|
|
|
10
10
|
金十数据中心-经济指标-欧元区-产业指标
|
|
11
11
|
金十数据中心-经济指标-欧元区-领先指标
|
|
12
12
|
"""
|
|
13
|
+
|
|
13
14
|
import time
|
|
14
15
|
|
|
15
16
|
import pandas as pd
|
|
@@ -799,7 +800,7 @@ def macro_euro_lme_holding() -> pd.DataFrame:
|
|
|
799
800
|
t = time.time()
|
|
800
801
|
params = {"_": str(int(round(t * 1000)))}
|
|
801
802
|
r = requests.get(
|
|
802
|
-
"https://cdn.jin10.com/data_center/reports/lme_position.json", params=params
|
|
803
|
+
url="https://cdn.jin10.com/data_center/reports/lme_position.json", params=params
|
|
803
804
|
)
|
|
804
805
|
json_data = r.json()
|
|
805
806
|
temp_df = pd.DataFrame(json_data["values"]).T
|
|
@@ -809,8 +810,12 @@ def macro_euro_lme_holding() -> pd.DataFrame:
|
|
|
809
810
|
for i in range(3):
|
|
810
811
|
inner_temp_df = temp_df.loc[:, item].apply(lambda x: eval(str(x))[i])
|
|
811
812
|
inner_temp_df.name = inner_temp_df.name + "-" + json_data["keys"][i]["name"]
|
|
812
|
-
big_df = pd.concat([big_df, inner_temp_df], axis=1)
|
|
813
|
-
big_df.
|
|
813
|
+
big_df = pd.concat(objs=[big_df, inner_temp_df], axis=1)
|
|
814
|
+
big_df = big_df.astype("float")
|
|
815
|
+
big_df = big_df.iloc[:-1, :].copy()
|
|
816
|
+
big_df.reset_index(inplace=True)
|
|
817
|
+
big_df.rename(columns={"index": "日期"}, inplace=True)
|
|
818
|
+
big_df.sort_values(by=["日期"], ignore_index=True, inplace=True)
|
|
814
819
|
return big_df
|
|
815
820
|
|
|
816
821
|
|
|
@@ -826,7 +831,7 @@ def macro_euro_lme_stock() -> pd.DataFrame:
|
|
|
826
831
|
t = time.time()
|
|
827
832
|
params = {"_": str(int(round(t * 1000)))}
|
|
828
833
|
r = requests.get(
|
|
829
|
-
"https://cdn.jin10.com/data_center/reports/lme_stock.json", params=params
|
|
834
|
+
url="https://cdn.jin10.com/data_center/reports/lme_stock.json", params=params
|
|
830
835
|
)
|
|
831
836
|
json_data = r.json()
|
|
832
837
|
temp_df = pd.DataFrame(json_data["values"]).T
|
|
@@ -835,8 +840,10 @@ def macro_euro_lme_stock() -> pd.DataFrame:
|
|
|
835
840
|
for i in range(3):
|
|
836
841
|
inner_temp_df = temp_df.loc[:, item].apply(lambda x: eval(str(x))[i])
|
|
837
842
|
inner_temp_df.name = inner_temp_df.name + "-" + json_data["keys"][i]["name"]
|
|
838
|
-
big_df = pd.concat([big_df, inner_temp_df], axis=1)
|
|
843
|
+
big_df = pd.concat(objs=[big_df, inner_temp_df], axis=1)
|
|
839
844
|
big_df.sort_index(inplace=True)
|
|
845
|
+
big_df.reset_index(inplace=True)
|
|
846
|
+
big_df.rename(columns={"index": "日期"}, inplace=True)
|
|
840
847
|
return big_df
|
|
841
848
|
|
|
842
849
|
|