akshare 1.14.81__py3-none-any.whl → 1.14.83__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
@@ -2892,9 +2892,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
2892
2892
  1.14.79 add: add stock_zcfz_bj_em interface
2893
2893
  1.14.80 fix: fix stock_hot_rank_wc interface
2894
2894
  1.14.81 fix: fix stock_hsgt_hist_em interface
2895
+ 1.14.82 fix: fix stock_comment_detail_scrd_desire_daily_em interface
2896
+ 1.14.83 fix: fix stock_comment_detail_zhpj_lspf_em interface
2895
2897
  """
2896
2898
 
2897
- __version__ = "1.14.81"
2899
+ __version__ = "1.14.83"
2898
2900
  __author__ = "AKFamily"
2899
2901
 
2900
2902
  import sys
@@ -28,7 +28,8 @@ def stock_comment_em() -> pd.DataFrame:
28
28
  "pageSize": "500",
29
29
  "pageNumber": "1",
30
30
  "reportName": "RPT_DMSK_TS_STOCKNEW",
31
- "quoteColumns": "f2~01~SECURITY_CODE~CLOSE_PRICE,f8~01~SECURITY_CODE~TURNOVERRATE,f3~01~SECURITY_CODE~CHANGE_RATE,f9~01~SECURITY_CODE~PE_DYNAMIC",
31
+ "quoteColumns": "f2~01~SECURITY_CODE~CLOSE_PRICE,f8~01~SECURITY_CODE~TURNOVERRATE,"
32
+ "f3~01~SECURITY_CODE~CHANGE_RATE,f9~01~SECURITY_CODE~PE_DYNAMIC",
32
33
  "columns": "ALL",
33
34
  "filter": "",
34
35
  "token": "894050c76af8597a853f5b408b759f5d",
@@ -137,11 +138,11 @@ def stock_comment_detail_zlkp_jgcyd_em(symbol: str = "600000") -> pd.DataFrame:
137
138
  data_json = r.json()
138
139
  temp_df = pd.DataFrame(data_json["result"]["data"])
139
140
  temp_df = temp_df[["TRADE_DATE", "ORG_PARTICIPATE"]]
140
- temp_df.columns = ["date", "value"]
141
- temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
142
- temp_df.sort_values(["date"], inplace=True)
141
+ temp_df.columns = ["交易日", "机构参与度"]
142
+ temp_df["交易日"] = pd.to_datetime(temp_df["交易日"], errors="coerce").dt.date
143
+ temp_df.sort_values(["交易日"], inplace=True)
143
144
  temp_df.reset_index(inplace=True, drop=True)
144
- temp_df["value"] = pd.to_numeric(temp_df["value"], errors="coerce") * 100
145
+ temp_df["机构参与度"] = pd.to_numeric(temp_df["机构参与度"], errors="coerce") * 100
145
146
  return temp_df
146
147
 
147
148
 
@@ -154,36 +155,31 @@ def stock_comment_detail_zhpj_lspf_em(symbol: str = "600000") -> pd.DataFrame:
154
155
  :return: 综合评价-历史评分
155
156
  :rtype: pandas.DataFrame
156
157
  """
157
- url = f"https://data.eastmoney.com/stockcomment/api/{symbol}.json"
158
- try_count = 10
159
- data_json = None
160
- while try_count:
161
- try:
162
- r = requests.get(url)
163
- data_json = r.json()
164
- break
165
- except requests.exceptions.JSONDecodeError:
166
- try_count -= 1
167
- time.sleep(1)
168
- continue
169
- current_year = data_json["ApiResults"]["zhpj"]["ComprehensiveScoreRank1"][0][0][
170
- "TradeDate"
171
- ].split("/")[0]
172
-
173
- temp_df = pd.DataFrame(
174
- [
175
- data_json["ApiResults"]["zhpj"]["HistoryScore"]["XData"],
176
- data_json["ApiResults"]["zhpj"]["HistoryScore"]["Ydata"]["Score"],
177
- data_json["ApiResults"]["zhpj"]["HistoryScore"]["Ydata"]["Price"],
178
- ]
179
- ).T
180
- temp_df.columns = ["日期", "评分", "股价"]
181
- temp_df["日期"] = current_year + "-" + temp_df["日期"]
182
- temp_df["日期"] = pd.to_datetime(temp_df["日期"], errors="coerce").dt.date
183
- temp_df.sort_values(by=["日期"], inplace=True)
158
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
159
+ params = {
160
+ "filter": f'(SECURITY_CODE="{symbol}")',
161
+ "columns": "ALL",
162
+ "source": "WEB",
163
+ "client": "WEB",
164
+ "reportName": "RPT_STOCK_HISTORYMARK",
165
+ "sortColumns": "DIAGNOSE_DATE",
166
+ "sortTypes": "1",
167
+ }
168
+ r = requests.get(url=url, params=params)
169
+ data_json = r.json()
170
+ temp_df = pd.DataFrame(data_json["result"]["data"])
171
+ temp_df.rename(
172
+ columns={
173
+ "TOTAL_SCORE": "评分",
174
+ "DIAGNOSE_DATE": "交易日",
175
+ },
176
+ inplace=True,
177
+ )
178
+ temp_df = temp_df[["交易日", "评分"]]
179
+ temp_df["交易日"] = pd.to_datetime(temp_df["交易日"], errors="coerce").dt.date
180
+ temp_df.sort_values(by=["交易日"], inplace=True)
184
181
  temp_df.reset_index(inplace=True, drop=True)
185
182
  temp_df["评分"] = pd.to_numeric(temp_df["评分"], errors="coerce")
186
- temp_df["股价"] = pd.to_numeric(temp_df["股价"], errors="coerce")
187
183
  return temp_df
188
184
 
189
185
 
@@ -289,42 +285,37 @@ def stock_comment_detail_scrd_desire_daily_em(
289
285
  :return: 市场热度-日度市场参与意愿
290
286
  :rtype: pandas.DataFrame
291
287
  """
292
- url = f"https://data.eastmoney.com/stockcomment/api/{symbol}.json"
293
- try_count = 10
294
- data_json = None
295
- while try_count:
296
- try:
297
- r = requests.get(url)
298
- data_json = r.json()
299
- break
300
- except requests.exceptions.JSONDecodeError:
301
- try_count -= 1
302
- time.sleep(1)
303
- continue
304
-
305
- date_str = (
306
- data_json["ApiResults"]["scrd"]["desire"][0][0]["UpdateTime"]
307
- .split(" ")[0]
308
- .replace("/", "-")
288
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
289
+ params = {
290
+ "filter": f'(SECURITY_CODE="{symbol}")',
291
+ "columns": "ALL",
292
+ "source": "WEB",
293
+ "client": "WEB",
294
+ "reportName": "RPT_STOCK_PARTICIPATION",
295
+ "sortColumns": "TRADE_DATE",
296
+ "sortTypes": "-1",
297
+ "pageSize": "30",
298
+ "_": "1727189719991",
299
+ }
300
+ r = requests.get(url=url, params=params)
301
+ data_json = r.json()
302
+ temp_df = pd.DataFrame(data_json["result"]["data"])
303
+ temp_df.rename(
304
+ columns={
305
+ "PARTICIPATION_WISH_5DAYSCHANGE": "5日平均参与意愿变化",
306
+ "PARTICIPATION_WISH_CHANGE": "当日意愿上升",
307
+ "TRADE_DATE": "交易日",
308
+ },
309
+ inplace=True,
309
310
  )
310
-
311
- temp_df = pd.DataFrame(
312
- [
313
- data_json["ApiResults"]["scrd"]["desire"][2]["XData"],
314
- data_json["ApiResults"]["scrd"]["desire"][2]["Ydata"]["PeopleNumChg"],
315
- data_json["ApiResults"]["scrd"]["desire"][2]["Ydata"][
316
- "TotalPeopleNumChange"
317
- ],
318
- ]
319
- ).T
320
- temp_df.columns = ["日期", "当日意愿下降", "五日累计意愿"]
321
- temp_df["日期"] = date_str[:4] + "-" + temp_df["日期"]
322
- temp_df["日期"] = pd.to_datetime(temp_df["日期"], errors="coerce").dt.date
323
-
324
- temp_df.sort_values(by=["日期"], inplace=True)
311
+ temp_df = temp_df[["交易日", "当日意愿上升", "5日平均参与意愿变化"]]
312
+ temp_df["交易日"] = pd.to_datetime(temp_df["交易日"], errors="coerce").dt.date
313
+ temp_df.sort_values(by=["交易日"], inplace=True)
325
314
  temp_df.reset_index(inplace=True, drop=True)
326
- temp_df["当日意愿下降"] = pd.to_numeric(temp_df["当日意愿下降"], errors="coerce")
327
- temp_df["五日累计意愿"] = pd.to_numeric(temp_df["五日累计意愿"], errors="coerce")
315
+ temp_df["当日意愿上升"] = pd.to_numeric(temp_df["当日意愿上升"], errors="coerce")
316
+ temp_df["5日平均参与意愿变化"] = pd.to_numeric(
317
+ temp_df["5日平均参与意愿变化"], errors="coerce"
318
+ )
328
319
  return temp_df
329
320
 
330
321
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: akshare
3
- Version: 1.14.81
3
+ Version: 1.14.83
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=UNOTe6VC1wTpP9qjsDdwdwqGGDpryPAXNaCFeI89_z8,181850
1
+ akshare/__init__.py,sha256=v1djGYu5jiEil9ma7vQW1ZEI5OGAzCvwScZtalakaEA,181980
2
2
  akshare/datasets.py,sha256=-qdwaQjgBlftX84uM74KJqCYJYkQ50PV416_neA4uls,995
3
3
  akshare/air/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8,81
4
4
  akshare/air/air_hebei.py,sha256=xIXNGLK7IGYqrkteM9fxnHAwWqk6PCQs6D9-ggZ7byY,4442
@@ -296,7 +296,7 @@ akshare/stock_feature/stock_analyst_em.py,sha256=Md3_G-Px0O1lk4dx5dCEKl8Vjgwt79S
296
296
  akshare/stock_feature/stock_board_industry_ths.py,sha256=bn4vPXaK_ybU-qUttQshnzFC1L_S9reO2OydmAt7sGI,12488
297
297
  akshare/stock_feature/stock_buffett_index_lg.py,sha256=NpNccHmGjtqLz6aUladB6InPzO2pjoImbgCgmNEYUuM,2027
298
298
  akshare/stock_feature/stock_classify_sina.py,sha256=Lg7ROG5W9HioFRplJI2rZ6tAAHM09N3g9qF6kReIQYI,3210
299
- akshare/stock_feature/stock_comment_em.py,sha256=3HpMZkCiIC6o6LzLZLNA-rYKBMRPeuTaj6xfuU7o4J0,14252
299
+ akshare/stock_feature/stock_comment_em.py,sha256=xDq2a5j46VuqWHvB_WPZiv6NUZ4ln6dVxicYMGDNE_0,13947
300
300
  akshare/stock_feature/stock_concept_futu.py,sha256=jKJ9mfdJXgXwcMb3gVpbDl5ivr-zcMkuGO7jjgyA3os,6228
301
301
  akshare/stock_feature/stock_congestion_lg.py,sha256=iTEcmL0HoSqWGfxv_gSM-qA4O23aqUH7qHl9asDtoO0,1299
302
302
  akshare/stock_feature/stock_cyq_em.py,sha256=ijHL6BWGDLI8dctYQ4pYWDK2UHOSfn5mRu0c9E5zwp0,11017
@@ -380,8 +380,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
380
380
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
381
381
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
382
382
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
383
- akshare-1.14.81.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
384
- akshare-1.14.81.dist-info/METADATA,sha256=XFRpPhoSjkrAB-A50E9k16x7hpybJHkra92R6SSbYj0,14112
385
- akshare-1.14.81.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
386
- akshare-1.14.81.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
387
- akshare-1.14.81.dist-info/RECORD,,
383
+ akshare-1.14.83.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
384
+ akshare-1.14.83.dist-info/METADATA,sha256=BgXgO3hfQV-aAfR1uj9vOtTJlQYU5OLr-4E7GKknYg4,14112
385
+ akshare-1.14.83.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
386
+ akshare-1.14.83.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
387
+ akshare-1.14.83.dist-info/RECORD,,