akshare 1.14.49__py3-none-any.whl → 1.17.99__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.
Files changed (343) hide show
  1. akshare/__init__.py +595 -129
  2. akshare/air/air_hebei.py +77 -54
  3. akshare/air/air_zhenqi.py +0 -4
  4. akshare/air/cons.py +1 -0
  5. akshare/air/crypto.js +1 -1
  6. akshare/air/outcrypto.js +1 -1
  7. akshare/article/cons.py +1 -0
  8. akshare/article/epu_index.py +4 -3
  9. akshare/article/ff_factor.py +19 -8
  10. akshare/article/fred_md.py +4 -1
  11. akshare/article/risk_rv.py +3 -8
  12. akshare/bank/bank_cbirc_2020.py +11 -11
  13. akshare/bank/cons.py +7 -6
  14. akshare/bond/bond_buy_back_em.py +228 -0
  15. akshare/bond/bond_cb_sina.py +1 -0
  16. akshare/bond/bond_cb_ths.py +17 -9
  17. akshare/bond/bond_cbond.py +19 -14
  18. akshare/bond/bond_china.py +38 -39
  19. akshare/bond/bond_china_money.py +1 -1
  20. akshare/bond/bond_convert.py +10 -9
  21. akshare/bond/bond_em.py +37 -17
  22. akshare/bond/bond_summary.py +38 -37
  23. akshare/bond/bond_zh_cov.py +31 -40
  24. akshare/bond/bond_zh_sina.py +4 -0
  25. akshare/bond/cons.py +14 -11
  26. akshare/cal/__init__.py +0 -0
  27. akshare/cal/rv.py +170 -0
  28. akshare/cost/cost_living.py +7 -5
  29. akshare/crypto/__init__.py +1 -1
  30. akshare/crypto/crypto_bitcoin_cme.py +9 -7
  31. akshare/crypto/crypto_hold.py +4 -2
  32. akshare/currency/currency.py +1 -0
  33. akshare/currency/currency_china_bank_sina.py +11 -6
  34. akshare/data/__init__.py +1 -1
  35. akshare/data/cninfo.js +1 -1
  36. akshare/datasets.py +10 -21
  37. akshare/economic/cons.py +10 -3
  38. akshare/economic/macro_australia.py +74 -69
  39. akshare/economic/macro_bank.py +95 -653
  40. akshare/economic/macro_canada.py +92 -81
  41. akshare/economic/macro_china.py +97 -105
  42. akshare/economic/macro_china_hk.py +0 -1
  43. akshare/economic/macro_euro.py +103 -56
  44. akshare/economic/macro_finance_ths.py +7 -5
  45. akshare/economic/macro_germany.py +1 -1
  46. akshare/economic/macro_japan.py +0 -1
  47. akshare/economic/macro_other.py +1 -6
  48. akshare/economic/macro_swiss.py +2 -3
  49. akshare/economic/macro_uk.py +1 -1
  50. akshare/economic/macro_usa.py +7 -9
  51. akshare/economic/marco_cnbs.py +11 -6
  52. akshare/energy/energy_carbon.py +0 -1
  53. akshare/energy/energy_oil_em.py +1 -2
  54. akshare/event/cons.py +1 -0
  55. akshare/exceptions.py +43 -0
  56. akshare/file_fold/calendar.json +245 -2
  57. akshare/forex/__init__.py +0 -0
  58. akshare/forex/cons.py +192 -0
  59. akshare/forex/forex_em.py +149 -0
  60. akshare/fortune/fortune_500.py +1 -37
  61. akshare/fortune/fortune_bloomberg.py +6 -3
  62. akshare/fortune/fortune_forbes_500.py +3 -6
  63. akshare/fortune/fortune_hurun.py +2 -1
  64. akshare/fortune/fortune_xincaifu_500.py +17 -14
  65. akshare/fund/fund_announcement_em.py +145 -0
  66. akshare/fund/fund_aum_em.py +49 -35
  67. akshare/fund/fund_em.py +251 -220
  68. akshare/fund/fund_etf_em.py +44 -35
  69. akshare/fund/fund_etf_sina.py +75 -27
  70. akshare/fund/fund_etf_ths.py +2 -0
  71. akshare/fund/fund_fee_em.py +172 -0
  72. akshare/fund/fund_fhsp_em.py +42 -32
  73. akshare/fund/fund_init_em.py +8 -5
  74. akshare/fund/fund_lof_em.py +12 -19
  75. akshare/fund/fund_manager.py +25 -11
  76. akshare/fund/fund_overview_em.py +42 -0
  77. akshare/fund/fund_portfolio_em.py +23 -21
  78. akshare/fund/fund_position_lg.py +19 -8
  79. akshare/fund/fund_rank_em.py +2 -5
  80. akshare/fund/fund_rating.py +33 -12
  81. akshare/fund/fund_scale_em.py +24 -13
  82. akshare/fund/fund_scale_sina.py +20 -10
  83. akshare/fund/fund_xq.py +3 -2
  84. akshare/futures/cons.py +135 -39
  85. akshare/futures/cot.py +55 -56
  86. akshare/futures/futures_basis.py +49 -11
  87. akshare/futures/futures_comex_em.py +1 -0
  88. akshare/futures/futures_comm_ctp.py +1 -1
  89. akshare/futures/futures_contract_detail.py +59 -9
  90. akshare/futures/futures_daily_bar.py +66 -59
  91. akshare/futures/futures_foreign.py +14 -8
  92. akshare/futures/futures_hf_em.py +215 -61
  93. akshare/futures/futures_hist_em.py +191 -0
  94. akshare/futures/futures_hq_sina.py +5 -3
  95. akshare/futures/futures_index_ccidx.py +24 -82
  96. akshare/futures/futures_inventory_99.py +70 -272
  97. akshare/futures/futures_inventory_em.py +14 -11
  98. akshare/futures/futures_news_shmet.py +2 -2
  99. akshare/futures/futures_roll_yield.py +11 -24
  100. akshare/futures/futures_rule.py +7 -3
  101. akshare/futures/futures_rule_em.py +38 -0
  102. akshare/futures/futures_settlement_price_sgx.py +21 -6
  103. akshare/futures/futures_stock_js.py +0 -1
  104. akshare/futures/futures_to_spot.py +5 -6
  105. akshare/futures/futures_warehouse_receipt.py +48 -47
  106. akshare/futures/futures_zh_sina.py +3 -3
  107. akshare/futures/receipt.py +298 -165
  108. akshare/futures/requests_fun.py +16 -3
  109. akshare/futures/symbol_var.py +32 -13
  110. akshare/futures_derivative/cons.py +100 -103
  111. akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
  112. akshare/futures_derivative/futures_contract_info_czce.py +2 -0
  113. akshare/futures_derivative/futures_contract_info_dce.py +43 -17
  114. akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
  115. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  116. akshare/futures_derivative/futures_contract_info_shfe.py +3 -4
  117. akshare/futures_derivative/futures_cot_sina.py +8 -6
  118. akshare/futures_derivative/futures_index_sina.py +25 -13
  119. akshare/fx/cons.py +12 -7
  120. akshare/fx/fx_c_swap_cm.py +62 -0
  121. akshare/fx/fx_quote.py +3 -2
  122. akshare/fx/fx_quote_baidu.py +2 -1
  123. akshare/hf/__init__.py +1 -1
  124. akshare/hf/hf_sp500.py +8 -7
  125. akshare/index/cons.py +132 -28
  126. akshare/index/index_cni.py +7 -7
  127. akshare/index/index_cons.py +2 -2
  128. akshare/index/index_csindex.py +68 -0
  129. akshare/index/index_cx.py +20 -20
  130. akshare/index/index_drewry.py +17 -16
  131. akshare/index/index_eri.py +1 -0
  132. akshare/index/index_global_em.py +167 -0
  133. akshare/index/index_global_sina.py +82 -0
  134. akshare/index/index_kq_fz.py +17 -14
  135. akshare/index/index_kq_ss.py +1 -0
  136. akshare/index/index_option_qvix.py +351 -16
  137. akshare/index/index_research_sw.py +21 -21
  138. akshare/index/index_spot.py +9 -5
  139. akshare/index/index_stock_hk.py +5 -9
  140. akshare/index/index_stock_zh.py +111 -24
  141. akshare/index/index_stock_zh_csindex.py +3 -367
  142. akshare/index/index_sugar.py +18 -4
  143. akshare/index/index_sw.py +10 -2
  144. akshare/index/index_yw.py +53 -75
  145. akshare/index/index_zh_em.py +15 -82
  146. akshare/interest_rate/interbank_rate_em.py +0 -1
  147. akshare/movie/jm.js +0 -1
  148. akshare/news/__init__.py +1 -1
  149. akshare/news/news_baidu.py +395 -222
  150. akshare/news/news_stock.py +49 -16
  151. akshare/option/cons.py +2 -2
  152. akshare/option/option_commodity.py +341 -220
  153. akshare/option/option_commodity_sina.py +22 -26
  154. akshare/option/option_contract_info_ctp.py +63 -0
  155. akshare/option/option_current_sse.py +61 -0
  156. akshare/option/option_current_szse.py +84 -0
  157. akshare/option/option_czce.py +37 -9
  158. akshare/option/option_daily_stats_sse_szse.py +0 -1
  159. akshare/option/option_em.py +4 -8
  160. akshare/option/option_finance.py +60 -12
  161. akshare/option/option_finance_sina.py +7 -7
  162. akshare/option/option_lhb_em.py +0 -1
  163. akshare/option/option_margin.py +62 -0
  164. akshare/option/option_premium_analysis_em.py +58 -53
  165. akshare/option/option_risk_analysis_em.py +11 -8
  166. akshare/option/option_risk_indicator_sse.py +3 -4
  167. akshare/option/option_value_analysis_em.py +62 -55
  168. akshare/other/__init__.py +1 -1
  169. akshare/pro/__init__.py +0 -1
  170. akshare/pro/client.py +6 -4
  171. akshare/pro/cons.py +3 -2
  172. akshare/pro/data_pro.py +6 -5
  173. akshare/qdii/__init__.py +0 -0
  174. akshare/qdii/qdii_jsl.py +233 -0
  175. akshare/qhkc/__init__.py +1 -6
  176. akshare/qhkc/qhkc_api.py +64 -22
  177. akshare/qhkc_web/__init__.py +1 -6
  178. akshare/qhkc_web/qhkc_fund.py +10 -6
  179. akshare/qhkc_web/qhkc_index.py +28 -14
  180. akshare/qhkc_web/qhkc_tool.py +62 -59
  181. akshare/rate/__init__.py +1 -1
  182. akshare/rate/repo_rate.py +36 -32
  183. akshare/reits/__init__.py +1 -1
  184. akshare/reits/reits_basic.py +149 -13
  185. akshare/request.py +117 -0
  186. akshare/spot/__init__.py +1 -1
  187. akshare/spot/spot_hog_soozhu.py +165 -3
  188. akshare/spot/spot_sge.py +70 -9
  189. akshare/stock/cons.py +60 -23
  190. akshare/stock/stock_allotment_cninfo.py +8 -8
  191. akshare/stock/stock_ask_bid_em.py +3 -78
  192. akshare/stock/stock_board_concept_em.py +160 -35
  193. akshare/stock/stock_board_industry_em.py +163 -70
  194. akshare/stock/stock_dividend_cninfo.py +31 -17
  195. akshare/stock/stock_dzjy_em.py +347 -260
  196. akshare/stock/stock_fund_em.py +72 -64
  197. akshare/stock/stock_fund_hold.py +1 -2
  198. akshare/stock/stock_gsrl_em.py +1 -0
  199. akshare/stock/stock_hk_comparison_em.py +175 -0
  200. akshare/stock/stock_hk_famous.py +4 -5
  201. akshare/stock/stock_hk_fhpx_ths.py +2 -1
  202. akshare/stock/stock_hk_hot_rank_em.py +1 -0
  203. akshare/stock/stock_hk_sina.py +84 -36
  204. akshare/stock/stock_hold_control_cninfo.py +82 -0
  205. akshare/stock/stock_hold_control_em.py +0 -2
  206. akshare/stock/stock_hot_rank_em.py +4 -1
  207. akshare/stock/stock_hot_search_baidu.py +32 -19
  208. akshare/stock/stock_hot_up_em.py +4 -1
  209. akshare/stock/stock_hsgt_em.py +155 -0
  210. akshare/stock/stock_industry.py +1 -0
  211. akshare/stock/stock_industry_cninfo.py +1 -2
  212. akshare/stock/stock_info.py +6 -4
  213. akshare/stock/stock_info_em.py +17 -11
  214. akshare/stock/stock_intraday_em.py +4 -78
  215. akshare/stock/stock_intraday_sina.py +2 -2
  216. akshare/stock/stock_news_cx.py +39 -0
  217. akshare/stock/stock_profile_cninfo.py +7 -7
  218. akshare/stock/stock_profile_em.py +302 -0
  219. akshare/stock/stock_rank_forecast.py +6 -5
  220. akshare/stock/stock_repurchase_em.py +7 -2
  221. akshare/stock/stock_share_changes_cninfo.py +7 -5
  222. akshare/stock/stock_share_hold.py +24 -20
  223. akshare/stock/stock_stop.py +6 -6
  224. akshare/stock/stock_summary.py +153 -417
  225. akshare/stock/stock_us_famous.py +5 -6
  226. akshare/stock/stock_us_js.py +3 -2
  227. akshare/stock/stock_us_pink.py +38 -27
  228. akshare/stock/stock_us_sina.py +7 -3
  229. akshare/stock/stock_weibo_nlp.py +18 -20
  230. akshare/stock/stock_xq.py +24 -22
  231. akshare/stock/stock_zh_a_sina.py +8 -5
  232. akshare/stock/stock_zh_a_special.py +240 -243
  233. akshare/stock/stock_zh_a_tick_tx.py +11 -3
  234. akshare/stock/stock_zh_ah_tx.py +23 -26
  235. akshare/stock/stock_zh_b_sina.py +2 -2
  236. akshare/stock/stock_zh_comparison_em.py +250 -0
  237. akshare/stock/stock_zh_kcb_sina.py +67 -64
  238. akshare/stock_a/__init__.py +0 -0
  239. akshare/stock_a/stock_board_concept_name_em.py +170 -0
  240. akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
  241. akshare/stock_a/stock_zh_a_spot.py +212 -0
  242. akshare/stock_feature/cons.py +1 -0
  243. akshare/stock_feature/stock_a_indicator.py +9 -54
  244. akshare/stock_feature/stock_a_pe_and_pb.py +23 -5
  245. akshare/stock_feature/stock_account_em.py +0 -1
  246. akshare/stock_feature/stock_all_pb.py +2 -1
  247. akshare/stock_feature/stock_analyst_em.py +36 -30
  248. akshare/stock_feature/stock_board_concept_ths.py +328 -0
  249. akshare/stock_feature/stock_board_industry_ths.py +57 -2
  250. akshare/stock_feature/stock_buffett_index_lg.py +10 -8
  251. akshare/stock_feature/stock_classify_sina.py +3 -6
  252. akshare/stock_feature/stock_comment_em.py +81 -144
  253. akshare/stock_feature/stock_congestion_lg.py +2 -1
  254. akshare/stock_feature/stock_cyq_em.py +5 -11
  255. akshare/stock_feature/stock_disclosure_cninfo.py +6 -6
  256. akshare/stock_feature/stock_dxsyl_em.py +121 -74
  257. akshare/stock_feature/stock_ebs_lg.py +5 -4
  258. akshare/stock_feature/stock_esg_sina.py +29 -7
  259. akshare/stock_feature/stock_fhps_em.py +2 -1
  260. akshare/stock_feature/stock_fhps_ths.py +15 -7
  261. akshare/stock_feature/stock_fund_flow.py +30 -22
  262. akshare/stock_feature/stock_gddh_em.py +19 -11
  263. akshare/stock_feature/stock_gdfx_em.py +226 -113
  264. akshare/stock_feature/stock_gdhs.py +75 -50
  265. akshare/stock_feature/stock_gdzjc_em.py +21 -10
  266. akshare/stock_feature/stock_gpzy_em.py +78 -46
  267. akshare/stock_feature/stock_gxl_lg.py +3 -2
  268. akshare/stock_feature/stock_hist_em.py +137 -234
  269. akshare/stock_feature/stock_hist_tx.py +13 -10
  270. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  271. akshare/stock_feature/stock_hot_xq.py +4 -6
  272. akshare/stock_feature/stock_hsgt_em.py +269 -97
  273. akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
  274. akshare/stock_feature/stock_hsgt_min_em.py +13 -16
  275. akshare/stock_feature/stock_info.py +7 -80
  276. akshare/stock_feature/stock_inner_trade_xq.py +38 -31
  277. akshare/stock_feature/stock_jgdy_em.py +43 -40
  278. akshare/stock_feature/stock_lhb_em.py +119 -3
  279. akshare/stock_feature/stock_margin_em.py +0 -1
  280. akshare/stock_feature/stock_margin_sse.py +0 -2
  281. akshare/stock_feature/stock_pankou_em.py +71 -35
  282. akshare/stock_feature/stock_qsjy_em.py +13 -4
  283. akshare/stock_feature/stock_report_em.py +151 -7
  284. akshare/stock_feature/stock_research_report_em.py +55 -20
  285. akshare/stock_feature/stock_sy_em.py +20 -15
  286. akshare/stock_feature/stock_technology_ths.py +122 -77
  287. akshare/stock_feature/stock_tfp_em.py +2 -1
  288. akshare/stock_feature/stock_three_report_em.py +21 -5
  289. akshare/stock_feature/stock_ttm_lyr.py +18 -9
  290. akshare/stock_feature/stock_value_em.py +83 -0
  291. akshare/stock_feature/stock_yjbb_em.py +58 -32
  292. akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
  293. akshare/stock_feature/stock_yjyg_em.py +1 -1
  294. akshare/stock_feature/stock_yzxdr_em.py +24 -22
  295. akshare/stock_feature/stock_zdhtmx_em.py +20 -6
  296. akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
  297. akshare/stock_feature/stock_ztb_em.py +39 -24
  298. akshare/stock_fundamental/__init__.py +1 -1
  299. akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
  300. akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
  301. akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +60 -7
  302. akshare/stock_fundamental/stock_finance_ths.py +524 -57
  303. akshare/stock_fundamental/stock_finance_us_em.py +268 -0
  304. akshare/stock_fundamental/stock_gbjg_em.py +80 -0
  305. akshare/stock_fundamental/stock_hold.py +26 -17
  306. akshare/stock_fundamental/stock_ipo_declare.py +1 -0
  307. akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
  308. akshare/stock_fundamental/stock_kcb_sse.py +26 -25
  309. akshare/stock_fundamental/stock_notice.py +12 -3
  310. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  311. akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
  312. akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
  313. akshare/stock_fundamental/stock_recommend.py +20 -4
  314. akshare/stock_fundamental/stock_zygc.py +5 -62
  315. akshare/utils/context.py +43 -0
  316. akshare/utils/demjson.py +2009 -1338
  317. akshare/utils/func.py +49 -2
  318. akshare/utils/multi_decrypt.py +53 -0
  319. akshare/utils/token_process.py +6 -5
  320. {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/METADATA +54 -80
  321. akshare-1.17.99.dist-info/RECORD +409 -0
  322. {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
  323. {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +1 -1
  324. tests/test_func.py +3 -5
  325. akshare/bond/bond_futures.py +0 -50
  326. akshare/bond/bond_investing.py +0 -139
  327. akshare/crypto/crypto_hist_investing.py +0 -249
  328. akshare/fund/fund_announcement.py +0 -56
  329. akshare/futures/futures_international.py +0 -170
  330. akshare/futures/futures_news_baidu.py +0 -54
  331. akshare/futures/inventory_data.py +0 -100
  332. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  333. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  334. akshare/futures_derivative/futures_index_volatility_nh.py +0 -53
  335. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  336. akshare/index/index_fear_greed_funddb.py +0 -78
  337. akshare/index/index_investing.py +0 -232
  338. akshare/sport/__init__.py +0 -6
  339. akshare/sport/sport_olympic.py +0 -27
  340. akshare/stock_feature/stock_wencai.py +0 -104
  341. akshare/stock_fundamental/stock_mda_ym.py +0 -40
  342. akshare-1.14.49.dist-info/RECORD +0 -387
  343. {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
akshare/bond/bond_em.py CHANGED
@@ -1,13 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/12/4 14:00
4
+ Date: 2025/4/5 17:00
5
5
  Desc: 东方财富网-数据中心-经济数据-中美国债收益率
6
6
  https://data.eastmoney.com/cjsj/zmgzsyl.html
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
- from tqdm import tqdm
11
+ from akshare.utils.tqdm import get_tqdm
11
12
 
12
13
 
13
14
  def bond_zh_us_rate(start_date: str = "19901219") -> pd.DataFrame:
@@ -30,12 +31,12 @@ def bond_zh_us_rate(start_date: str = "19901219") -> pd.DataFrame:
30
31
  "ps": "500",
31
32
  "pageNo": "1",
32
33
  "pageNum": "1",
33
- "_": "1615791534490",
34
34
  }
35
35
  r = requests.get(url, params=params)
36
36
  data_json = r.json()
37
37
  total_page = data_json["result"]["pages"]
38
38
  big_df = pd.DataFrame()
39
+ tqdm = get_tqdm()
39
40
  for page in tqdm(range(1, total_page + 1), leave=False):
40
41
  params = {
41
42
  "type": "RPTA_WEB_TREASURYYIELD",
@@ -47,14 +48,13 @@ def bond_zh_us_rate(start_date: str = "19901219") -> pd.DataFrame:
47
48
  "ps": "500",
48
49
  "pageNo": page,
49
50
  "pageNum": page,
50
- "_": "1615791534490",
51
51
  }
52
52
  r = requests.get(url, params=params)
53
53
  data_json = r.json()
54
54
  temp_df = pd.DataFrame(data_json["result"]["data"])
55
55
  for col in temp_df.columns:
56
56
  if temp_df[col].isnull().all(): # 检查列是否包含 None 或 NaN
57
- temp_df[col] = pd.to_numeric(temp_df[col], errors='coerce')
57
+ temp_df[col] = pd.to_numeric(temp_df[col], errors="coerce")
58
58
  if big_df.empty:
59
59
  big_df = temp_df
60
60
  else:
@@ -62,7 +62,7 @@ def bond_zh_us_rate(start_date: str = "19901219") -> pd.DataFrame:
62
62
 
63
63
  temp_date_list = pd.to_datetime(big_df["SOLAR_DATE"]).dt.date.to_list()
64
64
  if pd.to_datetime(start_date) in pd.date_range(
65
- temp_date_list[-1], temp_date_list[0]
65
+ temp_date_list[-1], temp_date_list[0]
66
66
  ):
67
67
  break
68
68
 
@@ -102,21 +102,41 @@ def bond_zh_us_rate(start_date: str = "19901219") -> pd.DataFrame:
102
102
  ]
103
103
  ]
104
104
  big_df["日期"] = pd.to_datetime(big_df["日期"], errors="coerce")
105
- big_df["中国国债收益率2年"] = pd.to_numeric(big_df["中国国债收益率2年"], errors="coerce")
106
- big_df["中国国债收益率5年"] = pd.to_numeric(big_df["中国国债收益率5年"], errors="coerce")
107
- big_df["中国国债收益率10年"] = pd.to_numeric(big_df["中国国债收益率10年"], errors="coerce")
108
- big_df["中国国债收益率30年"] = pd.to_numeric(big_df["中国国债收益率30年"], errors="coerce")
109
- big_df["中国国债收益率10年-2年"] = pd.to_numeric(big_df["中国国债收益率10年-2年"], errors="coerce")
105
+ big_df["中国国债收益率2年"] = pd.to_numeric(
106
+ big_df["中国国债收益率2年"], errors="coerce"
107
+ )
108
+ big_df["中国国债收益率5年"] = pd.to_numeric(
109
+ big_df["中国国债收益率5年"], errors="coerce"
110
+ )
111
+ big_df["中国国债收益率10年"] = pd.to_numeric(
112
+ big_df["中国国债收益率10年"], errors="coerce"
113
+ )
114
+ big_df["中国国债收益率30年"] = pd.to_numeric(
115
+ big_df["中国国债收益率30年"], errors="coerce"
116
+ )
117
+ big_df["中国国债收益率10年-2年"] = pd.to_numeric(
118
+ big_df["中国国债收益率10年-2年"], errors="coerce"
119
+ )
110
120
  big_df["中国GDP年增率"] = pd.to_numeric(big_df["中国GDP年增率"], errors="coerce")
111
- big_df["美国国债收益率2年"] = pd.to_numeric(big_df["美国国债收益率2年"], errors="coerce")
112
- big_df["美国国债收益率5年"] = pd.to_numeric(big_df["美国国债收益率5年"], errors="coerce")
113
- big_df["美国国债收益率10年"] = pd.to_numeric(big_df["美国国债收益率10年"], errors="coerce")
114
- big_df["美国国债收益率30年"] = pd.to_numeric(big_df["美国国债收益率30年"], errors="coerce")
115
- big_df["美国国债收益率10年-2年"] = pd.to_numeric(big_df["美国国债收益率10年-2年"], errors="coerce")
121
+ big_df["美国国债收益率2年"] = pd.to_numeric(
122
+ big_df["美国国债收益率2年"], errors="coerce"
123
+ )
124
+ big_df["美国国债收益率5年"] = pd.to_numeric(
125
+ big_df["美国国债收益率5年"], errors="coerce"
126
+ )
127
+ big_df["美国国债收益率10年"] = pd.to_numeric(
128
+ big_df["美国国债收益率10年"], errors="coerce"
129
+ )
130
+ big_df["美国国债收益率30年"] = pd.to_numeric(
131
+ big_df["美国国债收益率30年"], errors="coerce"
132
+ )
133
+ big_df["美国国债收益率10年-2年"] = pd.to_numeric(
134
+ big_df["美国国债收益率10年-2年"], errors="coerce"
135
+ )
116
136
  big_df["美国GDP年增率"] = pd.to_numeric(big_df["美国GDP年增率"], errors="coerce")
117
137
  big_df.sort_values("日期", inplace=True)
118
138
  big_df.set_index(["日期"], inplace=True)
119
- big_df = big_df[pd.to_datetime(start_date):]
139
+ big_df = big_df[pd.to_datetime(start_date) :]
120
140
  big_df.reset_index(inplace=True)
121
141
  big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
122
142
  return big_df
@@ -5,13 +5,14 @@ Date: 2022/3/5 12:55
5
5
  Desc: 上登债券信息网-债券成交概览
6
6
  http://bond.sse.com.cn/data/statistics/overview/turnover/
7
7
  """
8
+
8
9
  from io import BytesIO
9
10
 
10
11
  import pandas as pd
11
12
  import requests
12
13
 
13
14
 
14
- def bond_cash_summary_sse(date: str = '20210111') -> pd.DataFrame:
15
+ def bond_cash_summary_sse(date: str = "20210111") -> pd.DataFrame:
15
16
  """
16
17
  上登债券信息网-市场数据-市场统计-市场概览-债券现券市场概览
17
18
  http://bond.sse.com.cn/data/statistics/overview/bondow/
@@ -20,33 +21,33 @@ def bond_cash_summary_sse(date: str = '20210111') -> pd.DataFrame:
20
21
  :return: 债券成交概览
21
22
  :rtype: pandas.DataFrame
22
23
  """
23
- url = 'http://query.sse.com.cn/commonExcelDd.do'
24
+ url = "http://query.sse.com.cn/commonExcelDd.do"
24
25
  headers = {
25
- 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
26
- 'Referer': 'http://bond.sse.com.cn/',
27
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
26
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
27
+ "Referer": "http://bond.sse.com.cn/",
28
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
28
29
  }
29
30
  params = {
30
- 'sqlId': 'COMMON_SSEBOND_SCSJ_SCTJ_SCGL_ZQXQSCGL_CX_L',
31
- 'TRADE_DATE': f'{date[:4]}-{date[4:6]}-{date[6:]}',
31
+ "sqlId": "COMMON_SSEBOND_SCSJ_SCTJ_SCGL_ZQXQSCGL_CX_L",
32
+ "TRADE_DATE": f"{date[:4]}-{date[4:6]}-{date[6:]}",
32
33
  }
33
34
  r = requests.get(url, params=params, headers=headers)
34
35
  temp_df = pd.read_excel(BytesIO(r.content), engine="xlrd")
35
36
  temp_df.columns = [
36
- '债券现货',
37
- '托管只数',
38
- '托管市值',
39
- '托管面值',
40
- '数据日期',
37
+ "债券现货",
38
+ "托管只数",
39
+ "托管市值",
40
+ "托管面值",
41
+ "数据日期",
41
42
  ]
42
- temp_df['托管只数'] = pd.to_numeric(temp_df['托管只数'])
43
- temp_df['托管市值'] = pd.to_numeric(temp_df['托管市值'])
44
- temp_df['托管面值'] = pd.to_numeric(temp_df['托管面值'])
45
- temp_df['数据日期'] = pd.to_datetime(temp_df['数据日期']).dt.date
43
+ temp_df["托管只数"] = pd.to_numeric(temp_df["托管只数"])
44
+ temp_df["托管市值"] = pd.to_numeric(temp_df["托管市值"])
45
+ temp_df["托管面值"] = pd.to_numeric(temp_df["托管面值"])
46
+ temp_df["数据日期"] = pd.to_datetime(temp_df["数据日期"]).dt.date
46
47
  return temp_df
47
48
 
48
49
 
49
- def bond_deal_summary_sse(date: str = '20210104') -> pd.DataFrame:
50
+ def bond_deal_summary_sse(date: str = "20210104") -> pd.DataFrame:
50
51
  """
51
52
  上登债券信息网-市场数据-市场统计-市场概览-债券成交概览
52
53
  http://bond.sse.com.cn/data/statistics/overview/turnover/
@@ -55,37 +56,37 @@ def bond_deal_summary_sse(date: str = '20210104') -> pd.DataFrame:
55
56
  :return: 债券成交概览
56
57
  :rtype: pandas.DataFrame
57
58
  """
58
- url = 'http://query.sse.com.cn/commonExcelDd.do'
59
+ url = "http://query.sse.com.cn/commonExcelDd.do"
59
60
  headers = {
60
- 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
61
- 'Referer': 'http://bond.sse.com.cn/',
62
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
61
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
62
+ "Referer": "http://bond.sse.com.cn/",
63
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
63
64
  }
64
65
  params = {
65
- 'sqlId': 'COMMON_SSEBOND_SCSJ_SCTJ_SCGL_ZQCJGL_CX_L',
66
- 'TRADE_DATE': f'{date[:4]}-{date[4:6]}-{date[6:]}',
66
+ "sqlId": "COMMON_SSEBOND_SCSJ_SCTJ_SCGL_ZQCJGL_CX_L",
67
+ "TRADE_DATE": f"{date[:4]}-{date[4:6]}-{date[6:]}",
67
68
  }
68
69
  r = requests.get(url, params=params, headers=headers)
69
70
  temp_df = pd.read_excel(BytesIO(r.content))
70
71
  temp_df.columns = [
71
- '债券类型',
72
- '当日成交笔数',
73
- '当日成交金额',
74
- '当年成交笔数',
75
- '当年成交金额',
76
- '数据日期',
72
+ "债券类型",
73
+ "当日成交笔数",
74
+ "当日成交金额",
75
+ "当年成交笔数",
76
+ "当年成交金额",
77
+ "数据日期",
77
78
  ]
78
- temp_df['当日成交笔数'] = pd.to_numeric(temp_df['当日成交笔数'])
79
- temp_df['当日成交金额'] = pd.to_numeric(temp_df['当日成交金额'])
80
- temp_df['当年成交笔数'] = pd.to_numeric(temp_df['当年成交笔数'])
81
- temp_df['当年成交金额'] = pd.to_numeric(temp_df['当年成交金额'])
82
- temp_df['数据日期'] = pd.to_datetime(temp_df['数据日期']).dt.date
79
+ temp_df["当日成交笔数"] = pd.to_numeric(temp_df["当日成交笔数"])
80
+ temp_df["当日成交金额"] = pd.to_numeric(temp_df["当日成交金额"])
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
83
84
  return temp_df
84
85
 
85
86
 
86
- if __name__ == '__main__':
87
- bond_cash_summary_sse_df = bond_cash_summary_sse(date='20210111')
87
+ if __name__ == "__main__":
88
+ bond_cash_summary_sse_df = bond_cash_summary_sse(date="20210111")
88
89
  print(bond_cash_summary_sse_df)
89
90
 
90
- bond_summary_sse_df = bond_deal_summary_sse(date='20210111')
91
+ bond_summary_sse_df = bond_deal_summary_sse(date="20210111")
91
92
  print(bond_summary_sse_df)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/3/20 17:50
4
+ Date: 2025/7/4 15:00
5
5
  Desc: 新浪财经-债券-沪深可转债-实时行情数据和历史行情数据
6
6
  https://vip.stock.finance.sina.com.cn/mkt/#hskzz_z
7
7
  """
@@ -10,8 +10,8 @@ import datetime
10
10
  import re
11
11
 
12
12
  import pandas as pd
13
- import requests
14
13
  import py_mini_racer
14
+ import requests
15
15
 
16
16
  from akshare.bond.cons import (
17
17
  zh_sina_bond_hs_cov_count_url,
@@ -21,6 +21,7 @@ from akshare.bond.cons import (
21
21
  )
22
22
  from akshare.stock.cons import hk_js_decode
23
23
  from akshare.utils import demjson
24
+ from akshare.utils.func import fetch_paginated_data
24
25
  from akshare.utils.tqdm import get_tqdm
25
26
 
26
27
 
@@ -57,7 +58,7 @@ def bond_zh_hs_cov_spot() -> pd.DataFrame:
57
58
  zh_sina_bond_hs_payload_copy.update({"page": page})
58
59
  res = requests.get(zh_sina_bond_hs_cov_url, params=zh_sina_bond_hs_payload_copy)
59
60
  data_json = demjson.decode(res.text)
60
- big_df = pd.concat([big_df, pd.DataFrame(data_json)], ignore_index=True)
61
+ big_df = pd.concat(objs=[big_df, pd.DataFrame(data_json)], ignore_index=True)
61
62
  return big_df
62
63
 
63
64
 
@@ -95,26 +96,23 @@ def _code_id_map() -> dict:
95
96
  url = "https://80.push2.eastmoney.com/api/qt/clist/get"
96
97
  params = {
97
98
  "pn": "1",
98
- "pz": "5000",
99
+ "pz": "100",
99
100
  "po": "1",
100
101
  "np": "1",
101
102
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
102
103
  "fltt": "2",
103
104
  "invt": "2",
104
- "fid": "f3",
105
+ "fid": "f12",
105
106
  "fs": "m:1 t:2,m:1 t:23",
106
- "fields": "f12",
107
- "_": "1623833739532",
107
+ "fields": "f3,f12",
108
108
  }
109
- r = requests.get(url, params=params)
110
- data_json = r.json()
111
- temp_df = pd.DataFrame(data_json["data"]["diff"])
109
+ temp_df = fetch_paginated_data(url, params)
112
110
  temp_df["market_id"] = 1
113
- temp_df.columns = ["sh_code", "sh_id"]
111
+ temp_df.rename(columns={"f12": "sh_code", "market_id": "sh_id"}, inplace=True)
114
112
  code_id_dict = dict(zip(temp_df["sh_code"], temp_df["sh_id"]))
115
113
  params = {
116
114
  "pn": "1",
117
- "pz": "5000",
115
+ "pz": "100",
118
116
  "po": "1",
119
117
  "np": "1",
120
118
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -122,12 +120,9 @@ def _code_id_map() -> dict:
122
120
  "invt": "2",
123
121
  "fid": "f3",
124
122
  "fs": "m:0 t:6,m:0 t:80",
125
- "fields": "f12",
126
- "_": "1623833739532",
123
+ "fields": "f3,f12",
127
124
  }
128
- r = requests.get(url, params=params)
129
- data_json = r.json()
130
- temp_df_sz = pd.DataFrame(data_json["data"]["diff"])
125
+ temp_df_sz = fetch_paginated_data(url, params)
131
126
  temp_df_sz["sz_id"] = 0
132
127
  code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["sz_id"])))
133
128
  return code_id_dict
@@ -280,12 +275,10 @@ def bond_zh_hs_cov_pre_min(symbol: str = "sh113570") -> pd.DataFrame:
280
275
  params = {
281
276
  "fields1": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13",
282
277
  "fields2": "f51,f52,f53,f54,f55,f56,f57,f58",
283
- "ut": "fa5fd1943c7b386f172d6893dbfba10b",
284
278
  "ndays": "1",
285
279
  "iscr": "1",
286
280
  "iscca": "0",
287
281
  "secid": f"{market_type[symbol[:2]]}.{symbol[2:]}",
288
- "_": "1623766962675",
289
282
  }
290
283
  r = requests.get(url, params=params)
291
284
  data_json = r.json()
@@ -329,10 +322,10 @@ def bond_zh_cov() -> pd.DataFrame:
329
322
  "reportName": "RPT_BOND_CB_LIST",
330
323
  "columns": "ALL",
331
324
  "quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,"
332
- "f235~10~SECURITY_CODE~TRANSFER_PRICE,f236~10~SECURITY_CODE~TRANSFER_VALUE,"
333
- "f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,"
334
- "f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,"
335
- "f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
325
+ "f235~10~SECURITY_CODE~TRANSFER_PRICE,f236~10~SECURITY_CODE~TRANSFER_VALUE,"
326
+ "f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,"
327
+ "f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,"
328
+ "f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
336
329
  "source": "WEB",
337
330
  "client": "WEB",
338
331
  }
@@ -420,6 +413,7 @@ def bond_zh_cov() -> pd.DataFrame:
420
413
  "_",
421
414
  "_",
422
415
  "_",
416
+ "_",
423
417
  ]
424
418
  big_df = big_df[
425
419
  [
@@ -478,7 +472,7 @@ def bond_cov_comparison() -> pd.DataFrame:
478
472
  url = "https://16.push2.eastmoney.com/api/qt/clist/get"
479
473
  params = {
480
474
  "pn": "1",
481
- "pz": "5000",
475
+ "pz": "100",
482
476
  "po": "1",
483
477
  "np": "1",
484
478
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -487,15 +481,9 @@ def bond_cov_comparison() -> pd.DataFrame:
487
481
  "fid": "f243",
488
482
  "fs": "b:MK0354",
489
483
  "fields": "f1,f152,f2,f3,f12,f13,f14,f227,f228,f229,f230,f231,f232,f233,f234,"
490
- "f235,f236,f237,f238,f239,f240,f241,f242,f26,f243",
491
- "_": "1590386857527",
484
+ "f235,f236,f237,f238,f239,f240,f241,f242,f26,f243",
492
485
  }
493
- r = requests.get(url, params=params)
494
- text_data = r.text
495
- json_data = demjson.decode(text_data)
496
- temp_df = pd.DataFrame(json_data["data"]["diff"])
497
- temp_df.reset_index(inplace=True)
498
- temp_df["index"] = range(1, len(temp_df) + 1)
486
+ temp_df = fetch_paginated_data(url, params)
499
487
  temp_df.columns = [
500
488
  "序号",
501
489
  "_",
@@ -575,23 +563,22 @@ def bond_zh_cov_info(
575
563
  "reportName": "RPT_BOND_CB_LIST",
576
564
  "columns": "ALL",
577
565
  "quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,f235~10~SECURITY_CODE~TRANSFER_PRICE,"
578
- "f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
579
- "f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
580
- "f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
566
+ "f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
567
+ "f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
568
+ "f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
581
569
  "quoteType": "0",
582
570
  "source": "WEB",
583
571
  "client": "WEB",
584
572
  "filter": f'(SECURITY_CODE="{symbol}")',
585
- "_": "1654952140613",
586
573
  }
587
574
  if indicator == "基本信息":
588
575
  params.update(
589
576
  {
590
577
  "reportName": indicator_map[indicator],
591
578
  "quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,f235~10~SECURITY_CODE~TRANSFER_PRICE,"
592
- "f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
593
- "f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
594
- "f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
579
+ "f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
580
+ "f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
581
+ "f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
595
582
  }
596
583
  )
597
584
  r = requests.get(url, params=params)
@@ -633,12 +620,16 @@ def bond_zh_cov_info(
633
620
  data_json = r.json()
634
621
  temp_df = pd.DataFrame.from_dict(data_json["result"]["data"])
635
622
  return temp_df
623
+ else:
624
+ return pd.DataFrame()
636
625
 
637
626
 
638
627
  def bond_zh_cov_value_analysis(symbol: str = "113527") -> pd.DataFrame:
639
628
  """
640
629
  https://data.eastmoney.com/kzz/detail/113527.html
641
630
  东方财富网-数据中心-新股数据-可转债数据-价值分析-溢价率分析
631
+ :param symbol: 可转债代码
632
+ :type symbol: str
642
633
  :return: 可转债价值分析
643
634
  :rtype: pandas.DataFrame
644
635
  """
@@ -653,7 +644,6 @@ def bond_zh_cov_value_analysis(symbol: str = "113527") -> pd.DataFrame:
653
644
  "filter": f'(zcode="{symbol}")',
654
645
  "p": "1",
655
646
  "ps": "8000",
656
- "_": "1648629088839",
657
647
  }
658
648
  r = requests.get(url, params=params)
659
649
  data_json = r.json()
@@ -671,6 +661,7 @@ def bond_zh_cov_value_analysis(symbol: str = "113527") -> pd.DataFrame:
671
661
  "-",
672
662
  "-",
673
663
  "-",
664
+ "-",
674
665
  ]
675
666
  temp_df = temp_df[
676
667
  [
@@ -46,6 +46,10 @@ def bond_zh_hs_spot(start_page: str = "1", end_page: str = "10") -> pd.DataFrame
46
46
  """
47
47
  新浪财经-债券-沪深债券-实时行情数据, 大量抓取容易封IP
48
48
  https://vip.stock.finance.sina.com.cn/mkt/#hs_z
49
+ :param start_page: 分页起始页
50
+ :type start_page: str
51
+ :param end_page: 分页结束页
52
+ :type end_page: str
49
53
  :return: 所有沪深债券在当前时刻的实时行情数据
50
54
  :rtype: pandas.DataFrame
51
55
  """
akshare/bond/cons.py CHANGED
@@ -4,35 +4,40 @@
4
4
  Date: 2019/10/20 10:21
5
5
  Desc: 债券配置文件
6
6
  """
7
+
7
8
  # bond-cov-sina
8
9
  zh_sina_bond_hs_cov_url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeDataSimple"
9
10
  zh_sina_bond_hs_cov_count_url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeStockCountSimple"
10
- zh_sina_bond_hs_cov_hist_url = "https://finance.sina.com.cn/realstock/company/{}/hisdata/klc_kl.js?d={}"
11
+ zh_sina_bond_hs_cov_hist_url = (
12
+ "https://finance.sina.com.cn/realstock/company/{}/hisdata/klc_kl.js?d={}"
13
+ )
11
14
  zh_sina_bond_hs_cov_payload = {
12
15
  "page": "1",
13
16
  "num": "80",
14
17
  "sort": "symbol",
15
18
  "asc": "1",
16
19
  "node": "hskzz_z",
17
- "_s_r_a": "page"
20
+ "_s_r_a": "page",
18
21
  }
19
22
 
20
23
  # bond-sina
21
24
  zh_sina_bond_hs_url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData"
22
25
  zh_sina_bond_hs_count_url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeStockCountSimple"
23
- zh_sina_bond_hs_hist_url = "https://finance.sina.com.cn/realstock/company/{}/hisdata/klc_kl.js?d={}"
26
+ zh_sina_bond_hs_hist_url = (
27
+ "https://finance.sina.com.cn/realstock/company/{}/hisdata/klc_kl.js?d={}"
28
+ )
24
29
  zh_sina_bond_hs_payload = {
25
30
  "page": "1",
26
31
  "num": "80",
27
32
  "sort": "symbol",
28
33
  "asc": "1",
29
34
  "node": "hs_z",
30
- "_s_r_a": "page"
35
+ "_s_r_a": "page",
31
36
  }
32
37
 
33
38
  # headers
34
39
  SHORT_HEADERS = {
35
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36'
40
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36"
36
41
  }
37
42
 
38
43
  # quote
@@ -45,9 +50,7 @@ MARKET_QUOTE_PAYLOAD = {
45
50
  }
46
51
 
47
52
  # trade
48
- MARKET_TRADE_URL = "http://www.chinamoney.com.cn/ags/ms/cm-u-md-bond/CbtPri?lang=cn&flag=1&bondName="
49
- MARKET_TRADE_PAYLOAD = {
50
- "lang": "cn",
51
- "flag": "1",
52
- "bondName": ""
53
- }
53
+ MARKET_TRADE_URL = (
54
+ "http://www.chinamoney.com.cn/ags/ms/cm-u-md-bond/CbtPri?lang=cn&flag=1&bondName="
55
+ )
56
+ MARKET_TRADE_PAYLOAD = {"lang": "cn", "flag": "1", "bondName": ""}
File without changes