akshare 1.17.7__py3-none-any.whl → 1.17.9__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 CHANGED
@@ -3114,9 +3114,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3114
3114
  1.17.5 fix: fix stock_us_pink_spot_em interface
3115
3115
  1.17.6 fix: fix stock_tfp_em interface
3116
3116
  1.17.7 fix: fix futures_spot_price_daily interface
3117
+ 1.17.8 fix: fix forex_spot_em interface
3118
+ 1.17.9 fix: fix stock_zh_ab_comparison_em interface
3117
3119
  """
3118
3120
 
3119
- __version__ = "1.17.7"
3121
+ __version__ = "1.17.9"
3120
3122
  __author__ = "AKFamily"
3121
3123
 
3122
3124
  import sys
@@ -4252,6 +4254,7 @@ from akshare.stock_feature.stock_hist_em import (
4252
4254
  stock_sh_a_spot_em,
4253
4255
  stock_sz_a_spot_em,
4254
4256
  stock_zh_b_spot_em,
4257
+ stock_zh_ab_comparison_em,
4255
4258
  stock_zh_a_hist,
4256
4259
  stock_hk_spot_em,
4257
4260
  stock_hk_main_board_spot_em,
akshare/forex/forex_em.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2025/3/6 17:00
4
+ Date: 2025/6/23 15:00
5
5
  Desc: 东方财富网-行情中心-外汇市场-所有汇率
6
6
  https://quote.eastmoney.com/center/gridlist.html#forex_all
7
7
  """
@@ -10,6 +10,7 @@ import pandas as pd
10
10
  import requests
11
11
 
12
12
  from akshare.forex.cons import symbol_market_map
13
+ from akshare.utils.func import fetch_paginated_data
13
14
 
14
15
 
15
16
  def forex_spot_em() -> pd.DataFrame:
@@ -21,23 +22,19 @@ def forex_spot_em() -> pd.DataFrame:
21
22
  """
22
23
  url = "https://push2.eastmoney.com/api/qt/clist/get"
23
24
  params = {
24
- "np": "2",
25
- "fltt": "1",
25
+ "np": "1",
26
+ "fltt": "2",
26
27
  "invt": "2",
27
28
  "fs": "m:119,m:120,m:133",
28
29
  "fields": "f12,f13,f14,f1,f2,f4,f3,f152,f17,f18,f15,f16",
29
30
  "fid": "f3",
30
31
  "pn": "1",
31
- "pz": "20000",
32
+ "pz": "100",
32
33
  "po": "1",
33
34
  "dect": "1",
34
35
  "wbp2u": "|0|0|0|web",
35
36
  }
36
- r = requests.get(url, params=params)
37
- data_json = r.json()
38
- temp_df = pd.DataFrame(data_json["data"]["diff"]).T
39
- temp_df.reset_index(inplace=True)
40
- temp_df["index"] = temp_df["index"].astype(int) + 1
37
+ temp_df = fetch_paginated_data(url, params)
41
38
  temp_df.rename(
42
39
  columns={
43
40
  "index": "序号",
@@ -31,7 +31,7 @@ def stock_zh_a_spot_em() -> pd.DataFrame:
31
31
  "fid": "f12",
32
32
  "fs": "m:0 t:6,m:0 t:80,m:1 t:2,m:1 t:23,m:0 t:81 s:2048",
33
33
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,"
34
- "f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
34
+ "f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
35
35
  }
36
36
  temp_df = fetch_paginated_data(url, params)
37
37
  temp_df.columns = [
@@ -140,7 +140,7 @@ def stock_sh_a_spot_em() -> pd.DataFrame:
140
140
  "fid": "f12",
141
141
  "fs": "m:1 t:2,m:1 t:23",
142
142
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,"
143
- "f24,f25,f22,f11,f62,f128,f136,f115,f152",
143
+ "f24,f25,f22,f11,f62,f128,f136,f115,f152",
144
144
  }
145
145
  temp_df = fetch_paginated_data(url, params)
146
146
  temp_df.columns = [
@@ -248,7 +248,7 @@ def stock_sz_a_spot_em() -> pd.DataFrame:
248
248
  "fid": "f12",
249
249
  "fs": "m:0 t:6,m:0 t:80",
250
250
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,"
251
- "f25,f22,f11,f62,f128,f136,f115,f152",
251
+ "f25,f22,f11,f62,f128,f136,f115,f152",
252
252
  }
253
253
  temp_df = fetch_paginated_data(url, params)
254
254
  temp_df.columns = [
@@ -356,7 +356,7 @@ def stock_bj_a_spot_em() -> pd.DataFrame:
356
356
  "fid": "f12",
357
357
  "fs": "m:0 t:81 s:2048",
358
358
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24"
359
- ",f25,f22,f11,f62,f128,f136,f115,f152",
359
+ ",f25,f22,f11,f62,f128,f136,f115,f152",
360
360
  }
361
361
  temp_df = fetch_paginated_data(url, params)
362
362
  temp_df.columns = [
@@ -465,7 +465,7 @@ def stock_new_a_spot_em() -> pd.DataFrame:
465
465
  "fid": "f26",
466
466
  "fs": "m:0 f:8,m:1 f:8",
467
467
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,"
468
- "f25,f26,f22,f11,f62,f128,f136,f115,f152",
468
+ "f25,f26,f22,f11,f62,f128,f136,f115,f152",
469
469
  }
470
470
  temp_df = fetch_paginated_data(url, params)
471
471
  temp_df.columns = [
@@ -578,7 +578,7 @@ def stock_cy_a_spot_em() -> pd.DataFrame:
578
578
  "fid": "f12",
579
579
  "fs": "m:0 t:80",
580
580
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,"
581
- "f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
581
+ "f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
582
582
  }
583
583
  temp_df = fetch_paginated_data(url, params)
584
584
  temp_df.columns = [
@@ -687,7 +687,7 @@ def stock_kc_a_spot_em() -> pd.DataFrame:
687
687
  "fid": "f12",
688
688
  "fs": "m:1 t:23",
689
689
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,"
690
- "f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
690
+ "f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
691
691
  }
692
692
  temp_df = fetch_paginated_data(url, params)
693
693
  temp_df.columns = [
@@ -776,6 +776,69 @@ def stock_kc_a_spot_em() -> pd.DataFrame:
776
776
  return temp_df
777
777
 
778
778
 
779
+ def stock_zh_ab_comparison_em() -> pd.DataFrame:
780
+ """
781
+ 东方财富网-行情中心-沪深京个股-AB股比价-全部AB股比价
782
+ https://quote.eastmoney.com/center/gridlist.html#ab_comparison
783
+ :return: 实时行情
784
+ :rtype: pandas.DataFrame
785
+ """
786
+ url = "https://push2.eastmoney.com/api/qt/clist/get"
787
+ params = {
788
+ "np": "1",
789
+ "fltt": "1",
790
+ "invt": "2",
791
+ "fs": "m:1+b:BK0498,m:0+b:BK0498",
792
+ "fields": "f201,f202,f203,f196,f200,f197,f152,f12,f13,f14,f1,f2,f4,f3,f199",
793
+ "fid": "f199",
794
+ "pn": "1",
795
+ "pz": "100",
796
+ "po": "1",
797
+ "dect": "1",
798
+ "wbp2u": "|0|0|0|web",
799
+ }
800
+ columns_map = {
801
+ "index": "序号",
802
+ "f1": "-",
803
+ "f2": "最新价B",
804
+ "f3": "涨跌幅B",
805
+ "f4": "-",
806
+ "f12": "A股代码",
807
+ "f13": "-",
808
+ "f14": "A股名称",
809
+ "f152": "-",
810
+ "f196": "最新价A",
811
+ "f197": "涨跌幅A",
812
+ "f199": "比价",
813
+ "f200": "-",
814
+ "f201": "B股代码",
815
+ "f202": "-",
816
+ "f203": "B股名称"
817
+ }
818
+ temp_df = fetch_paginated_data(url, params)
819
+ temp_df = temp_df.rename(columns=columns_map)
820
+ list_name = [value for key, value in columns_map.items() if value != "_"]
821
+ temp_df = temp_df[list_name]
822
+ temp_df = temp_df[[
823
+ "序号",
824
+ "B股代码",
825
+ "B股名称",
826
+ "最新价B",
827
+ "涨跌幅B",
828
+ "A股代码",
829
+ "A股名称",
830
+ "最新价A",
831
+ "涨跌幅A",
832
+ "比价",
833
+ ]]
834
+ temp_df["最新价B"] = pd.to_numeric(temp_df["最新价B"], errors="coerce") / 100
835
+ temp_df["涨跌幅B"] = pd.to_numeric(temp_df["涨跌幅B"], errors="coerce") / 100
836
+ temp_df["最新价A"] = pd.to_numeric(temp_df["最新价A"], errors="coerce") / 100
837
+ temp_df["涨跌幅A"] = pd.to_numeric(temp_df["涨跌幅A"], errors="coerce") / 100
838
+ temp_df["比价"] = pd.to_numeric(temp_df["比价"], errors="coerce") / 100
839
+ return temp_df
840
+
841
+
779
842
  def stock_zh_b_spot_em() -> pd.DataFrame:
780
843
  """
781
844
  东方财富网- B 股-实时行情
@@ -795,7 +858,7 @@ def stock_zh_b_spot_em() -> pd.DataFrame:
795
858
  "fid": "f12",
796
859
  "fs": "m:0 t:7,m:1 t:3",
797
860
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20"
798
- ",f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
861
+ ",f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
799
862
  }
800
863
  temp_df = fetch_paginated_data(url, params)
801
864
  temp_df.columns = [
@@ -1144,7 +1207,7 @@ def stock_zh_a_hist_pre_min_em(
1144
1207
  ]
1145
1208
  temp_df.index = pd.to_datetime(temp_df["时间"])
1146
1209
  date_format = temp_df.index[0].date().isoformat()
1147
- temp_df = temp_df[date_format + " " + start_time : date_format + " " + end_time]
1210
+ temp_df = temp_df[date_format + " " + start_time: date_format + " " + end_time]
1148
1211
  temp_df.reset_index(drop=True, inplace=True)
1149
1212
  temp_df["开盘"] = pd.to_numeric(temp_df["开盘"], errors="coerce")
1150
1213
  temp_df["收盘"] = pd.to_numeric(temp_df["收盘"], errors="coerce")
@@ -1176,7 +1239,7 @@ def stock_hk_spot_em() -> pd.DataFrame:
1176
1239
  "fid": "f12",
1177
1240
  "fs": "m:128 t:3,m:128 t:4,m:128 t:1,m:128 t:2",
1178
1241
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,"
1179
- "f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
1242
+ "f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
1180
1243
  }
1181
1244
  temp_df = fetch_paginated_data(url, params)
1182
1245
  temp_df.columns = [
@@ -1261,7 +1324,7 @@ def stock_hk_main_board_spot_em() -> pd.DataFrame:
1261
1324
  "fid": "f12",
1262
1325
  "fs": "m:128 t:3",
1263
1326
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,"
1264
- "f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
1327
+ "f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
1265
1328
  }
1266
1329
  temp_df = fetch_paginated_data(url, params)
1267
1330
  temp_df.columns = [
@@ -1544,7 +1607,7 @@ def stock_us_spot_em() -> pd.DataFrame:
1544
1607
  "fid": "f12",
1545
1608
  "fs": "m:105,m:106,m:107",
1546
1609
  "fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,"
1547
- "f21,f23,f24,f25,f26,f22,f33,f11,f62,f128,f136,f115,f152",
1610
+ "f21,f23,f24,f25,f26,f22,f33,f11,f62,f128,f136,f115,f152",
1548
1611
  }
1549
1612
  temp_df = fetch_paginated_data(url, params)
1550
1613
  temp_df.columns = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akshare
3
- Version: 1.17.7
3
+ Version: 1.17.9
4
4
  Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
5
5
  Home-page: https://github.com/akfamily/akshare
6
6
  Author: AKFamily
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=VJYzaGgsg-BPCTqLelxiDllLv5NES764hAFux4MDVlw,194697
1
+ akshare/__init__.py,sha256=Nnof-dGcG5zQ4yCqUCMjByzV0pSgGZB8oYD89KDP03w,194820
2
2
  akshare/datasets.py,sha256=rKuRNZrqi6IMsZ9nyvO3Rx02js0tH3zMLjz8HQNAoPQ,963
3
3
  akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
4
4
  akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
@@ -78,7 +78,7 @@ akshare/file_fold/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8
78
78
  akshare/file_fold/calendar.json,sha256=t25_O-jatjQOzR6KmSQdPhZMY85yV_hr9_wq26u7jWo,119773
79
79
  akshare/forex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
80
  akshare/forex/cons.py,sha256=62e0ogTbuanOtrw79swGCuygsabJsUqvWdsEwQFJMJA,3659
81
- akshare/forex/forex_em.py,sha256=gKwuZ90-2qt8DC8kzlGkWARx2DbQDm1v6YcWbBtt3ZI,4705
81
+ akshare/forex/forex_em.py,sha256=sNHi2_DojffmS-r-9NjcFWmKELPrNjLC-BCAwrMacag,4588
82
82
  akshare/fortune/__init__.py,sha256=4OCuVKMykUB3Ubm8WogA814U5EGLdrexmfTAOcBnYM4,82
83
83
  akshare/fortune/fortune_500.py,sha256=QqF3dLdDiCcSoDxsyEgJf8CHu72Ppsu7u0EajbXr6mg,3197
84
84
  akshare/fortune/fortune_bloomberg.py,sha256=cFuuM2Zf712ZpTzY2zVBr7n2li4sf0nAmYjJnO6rZ2E,3690
@@ -323,7 +323,7 @@ akshare/stock_feature/stock_gdhs.py,sha256=Z6ZMy1A03BqMu9TghcIu2Sd_wwEtpIH7qawHu
323
323
  akshare/stock_feature/stock_gdzjc_em.py,sha256=3bx2kQmM7OeZWoa9WtkwoCXVaMfIUZw23xpCvs5VSNM,4547
324
324
  akshare/stock_feature/stock_gpzy_em.py,sha256=FgyjVgdoxrtMM7WwxdQJxK0mYGJklIHaT9KmMCFmEPM,17869
325
325
  akshare/stock_feature/stock_gxl_lg.py,sha256=iX-lYPZI4c7Jh_j8P6eT8eSNLmLHl_8NjsWYJ4qiufI,2644
326
- akshare/stock_feature/stock_hist_em.py,sha256=4WN44TUCdjjxVyhMbvQG3Ttm2ShG3_kh5X4Kp3nufjo,63379
326
+ akshare/stock_feature/stock_hist_em.py,sha256=sS7qv6kNvS36YsYtx3fCX2QW_HBH6ju1fHi-KMm5p-Q,65493
327
327
  akshare/stock_feature/stock_hist_tx.py,sha256=T3eegWWohahHzsFOx58qJFLq9QQRUiDXEaiJdQLkex0,3346
328
328
  akshare/stock_feature/stock_hk_valuation_baidu.py,sha256=_sErx4UhNsSXJgXyPfrL0aPxkW53Mg1zH9gEKoziaCA,1968
329
329
  akshare/stock_feature/stock_hot_xq.py,sha256=P4-fLjrh-9CdVe5BQ2O5hmeSesHQAu9E49aMKmhMedM,9023
@@ -392,10 +392,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
392
392
  akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
393
393
  akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
394
394
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
395
- akshare-1.17.7.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
395
+ akshare-1.17.9.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
396
396
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
397
397
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
398
- akshare-1.17.7.dist-info/METADATA,sha256=NeIB1zVrBMUioMnkXt_QZ5-5GQY9vtp_Kyi6pj1tO6s,11901
399
- akshare-1.17.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
400
- akshare-1.17.7.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
401
- akshare-1.17.7.dist-info/RECORD,,
398
+ akshare-1.17.9.dist-info/METADATA,sha256=mVn4uElBCU3PSIp3vQRgV_TJETBhJSazoIFZT4z8HFU,11901
399
+ akshare-1.17.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
400
+ akshare-1.17.9.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
401
+ akshare-1.17.9.dist-info/RECORD,,