akshare 1.16.76__py3-none-any.whl → 1.16.77__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.
- akshare/__init__.py +3 -1
- akshare/stock_feature/stock_lhb_em.py +118 -1
- {akshare-1.16.76.dist-info → akshare-1.16.77.dist-info}/METADATA +1 -1
- {akshare-1.16.76.dist-info → akshare-1.16.77.dist-info}/RECORD +7 -7
- {akshare-1.16.76.dist-info → akshare-1.16.77.dist-info}/WHEEL +0 -0
- {akshare-1.16.76.dist-info → akshare-1.16.77.dist-info}/licenses/LICENSE +0 -0
- {akshare-1.16.76.dist-info → akshare-1.16.77.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
@@ -3085,9 +3085,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
3085
3085
|
1.16.74 fix: fix stock_individual_spot_xq interface
|
3086
3086
|
1.16.75 fix: fix get_qhkc_index interface
|
3087
3087
|
1.16.76 fix: fix spot_quotations_sge interface
|
3088
|
+
1.16.77 add: add stock_lhb_yyb_detail_em interface
|
3088
3089
|
"""
|
3089
3090
|
|
3090
|
-
__version__ = "1.16.
|
3091
|
+
__version__ = "1.16.77"
|
3091
3092
|
__author__ = "AKFamily"
|
3092
3093
|
|
3093
3094
|
import sys
|
@@ -3733,6 +3734,7 @@ from akshare.stock_feature.stock_lhb_em import (
|
|
3733
3734
|
stock_lhb_yybph_em,
|
3734
3735
|
stock_lhb_jgstatistic_em,
|
3735
3736
|
stock_lhb_traderstatistic_em,
|
3737
|
+
stock_lhb_yyb_detail_em,
|
3736
3738
|
)
|
3737
3739
|
|
3738
3740
|
"""
|
@@ -480,7 +480,7 @@ def stock_lhb_hyyyb_em(
|
|
480
480
|
"卖出总金额",
|
481
481
|
"总买卖净额",
|
482
482
|
"-",
|
483
|
-
"
|
483
|
+
"营业部代码",
|
484
484
|
"买入股票",
|
485
485
|
"-",
|
486
486
|
"-",
|
@@ -496,6 +496,7 @@ def stock_lhb_hyyyb_em(
|
|
496
496
|
"卖出总金额",
|
497
497
|
"总买卖净额",
|
498
498
|
"买入股票",
|
499
|
+
"营业部代码",
|
499
500
|
]
|
500
501
|
]
|
501
502
|
|
@@ -900,6 +901,119 @@ def stock_lhb_stock_detail_em(
|
|
900
901
|
return temp_df
|
901
902
|
|
902
903
|
|
904
|
+
def stock_lhb_yyb_detail_em(symbol: str = "10188715") -> pd.DataFrame:
|
905
|
+
"""
|
906
|
+
东方财富网-数据中心-龙虎榜单-营业部历史交易明细-营业部交易明细
|
907
|
+
https://data.eastmoney.com/stock/lhb/yyb/10188715.html
|
908
|
+
:param symbol: 营业部代码, 如 "10188715", 通过 ak.stock_lhb_hyyyb_em() 接口获取
|
909
|
+
:type symbol: str
|
910
|
+
:return: 营业部交易明细数据
|
911
|
+
:rtype: pandas.DataFrame
|
912
|
+
"""
|
913
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
914
|
+
params = {
|
915
|
+
"sortColumns": "TRADE_DATE,SECURITY_CODE",
|
916
|
+
"sortTypes": "-1,1",
|
917
|
+
"pageSize": '100',
|
918
|
+
"pageNumber": "1",
|
919
|
+
"reportName": "RPT_OPERATEDEPT_TRADE_DETAILSNEW",
|
920
|
+
"columns": "ALL",
|
921
|
+
"source": "WEB",
|
922
|
+
"client": "WEB",
|
923
|
+
"filter": f'(OPERATEDEPT_CODE="{symbol}")',
|
924
|
+
}
|
925
|
+
r = requests.get(url, params=params)
|
926
|
+
data_json = r.json()
|
927
|
+
total_page = data_json["result"]["pages"]
|
928
|
+
big_df = pd.DataFrame()
|
929
|
+
tqdm = get_tqdm()
|
930
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
931
|
+
params.update({"pageNumber": page})
|
932
|
+
r = requests.get(url, params=params)
|
933
|
+
data_json = r.json()
|
934
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
935
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
936
|
+
|
937
|
+
# 检查DataFrame是否为空
|
938
|
+
if big_df.empty:
|
939
|
+
return pd.DataFrame()
|
940
|
+
|
941
|
+
# 确保列名与实际返回的JSON数据结构一致
|
942
|
+
column_map = {
|
943
|
+
"OPERATEDEPT_CODE": "营业部代码",
|
944
|
+
"OPERATEDEPT_NAME": "营业部名称",
|
945
|
+
"TRADE_DATE": "交易日期",
|
946
|
+
"D1_CLOSE_ADJCHRATE": "1日后涨跌幅",
|
947
|
+
"D2_CLOSE_ADJCHRATE": "2日后涨跌幅",
|
948
|
+
"D3_CLOSE_ADJCHRATE": "3日后涨跌幅",
|
949
|
+
"D5_CLOSE_ADJCHRATE": "5日后涨跌幅",
|
950
|
+
"D10_CLOSE_ADJCHRATE": "10日后涨跌幅",
|
951
|
+
"SECURITY_CODE": "股票代码",
|
952
|
+
"SECURITY_NAME_ABBR": "股票名称",
|
953
|
+
"ACT_BUY": "买入金额",
|
954
|
+
"ACT_SELL": "卖出金额",
|
955
|
+
"NET_AMT": "净额",
|
956
|
+
"EXPLANATION": "上榜原因",
|
957
|
+
"D20_CLOSE_ADJCHRATE": "20日后涨跌幅",
|
958
|
+
"D30_CLOSE_ADJCHRATE": "30日后涨跌幅",
|
959
|
+
"SECUCODE": "证券代码",
|
960
|
+
"OPERATEDEPT_CODE_OLD": "营业部旧代码",
|
961
|
+
"ORG_NAME_ABBR": "营业部简称",
|
962
|
+
"CHANGE_RATE": "涨跌幅"
|
963
|
+
}
|
964
|
+
|
965
|
+
# 重命名列
|
966
|
+
big_df.rename(columns=column_map, inplace=True)
|
967
|
+
|
968
|
+
# 添加序号列
|
969
|
+
big_df.reset_index(inplace=True)
|
970
|
+
big_df["序号"] = big_df.index + 1
|
971
|
+
|
972
|
+
# 选择需要的列并排序
|
973
|
+
result_columns = [
|
974
|
+
"序号",
|
975
|
+
"营业部代码",
|
976
|
+
"营业部名称",
|
977
|
+
"营业部简称",
|
978
|
+
"交易日期",
|
979
|
+
"股票代码",
|
980
|
+
"股票名称",
|
981
|
+
"涨跌幅",
|
982
|
+
"买入金额",
|
983
|
+
"卖出金额",
|
984
|
+
"净额",
|
985
|
+
"上榜原因",
|
986
|
+
"1日后涨跌幅",
|
987
|
+
"2日后涨跌幅",
|
988
|
+
"3日后涨跌幅",
|
989
|
+
"5日后涨跌幅",
|
990
|
+
"10日后涨跌幅",
|
991
|
+
"20日后涨跌幅",
|
992
|
+
"30日后涨跌幅",
|
993
|
+
]
|
994
|
+
|
995
|
+
# 确保所有列都存在
|
996
|
+
for col in result_columns:
|
997
|
+
if col not in big_df.columns and col != "序号":
|
998
|
+
big_df[col] = None
|
999
|
+
|
1000
|
+
big_df = big_df[result_columns]
|
1001
|
+
|
1002
|
+
# 处理日期格式
|
1003
|
+
big_df["交易日期"] = pd.to_datetime(big_df["交易日期"], errors="coerce").dt.date
|
1004
|
+
|
1005
|
+
# 处理数值列
|
1006
|
+
numeric_cols = [
|
1007
|
+
"涨跌幅", "买入金额", "卖出金额", "净额",
|
1008
|
+
"1日后涨跌幅", "2日后涨跌幅", "3日后涨跌幅",
|
1009
|
+
"5日后涨跌幅", "10日后涨跌幅", "20日后涨跌幅", "30日后涨跌幅"
|
1010
|
+
]
|
1011
|
+
for col in numeric_cols:
|
1012
|
+
big_df[col] = pd.to_numeric(big_df[col], errors="coerce")
|
1013
|
+
|
1014
|
+
return big_df
|
1015
|
+
|
1016
|
+
|
903
1017
|
if __name__ == "__main__":
|
904
1018
|
stock_lhb_detail_em_df = stock_lhb_detail_em(
|
905
1019
|
start_date="20250201", end_date="20250228"
|
@@ -949,3 +1063,6 @@ if __name__ == "__main__":
|
|
949
1063
|
symbol="600077", date="20070416", flag="买入"
|
950
1064
|
)
|
951
1065
|
print(stock_lhb_stock_detail_em_df)
|
1066
|
+
|
1067
|
+
stock_lhb_yyb_detail_em_df = stock_lhb_yyb_detail_em(symbol="10188715")
|
1068
|
+
print(stock_lhb_yyb_detail_em_df)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
akshare/__init__.py,sha256=
|
1
|
+
akshare/__init__.py,sha256=RXBBHX6CKjlarg4vC5g_-eS46sWZRJH_d5rX16X9cZ4,193271
|
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
|
@@ -335,7 +335,7 @@ akshare/stock_feature/stock_inner_trade_xq.py,sha256=XNeQheeWcjdhuvfO2NWt_m191HX
|
|
335
335
|
akshare/stock_feature/stock_irm_cninfo.py,sha256=xD028gllzaHYj6xU9pRKvSLI_gIkVhCTnFH0dSPv1gY,6112
|
336
336
|
akshare/stock_feature/stock_jgdy_em.py,sha256=B39Il7p1a_hx0FXL4zo_Xsxi10Z8W7_EZv8f9nNnwXg,6080
|
337
337
|
akshare/stock_feature/stock_lh_yybpm.py,sha256=7VlqA-UGbfiQ4ez7Ah9znIfUcVI-7Fxxz_V03JO8LTY,3614
|
338
|
-
akshare/stock_feature/stock_lhb_em.py,sha256=
|
338
|
+
akshare/stock_feature/stock_lhb_em.py,sha256=0zQVJAI6Q2-fByX45-DpC_2KF3sU9lVvcC-ds0IM0_k,38237
|
339
339
|
akshare/stock_feature/stock_lhb_sina.py,sha256=W5F5aPlxAmHzzxcf1AAiJuMVtTK9PlYMo_XamCZ5N1o,9232
|
340
340
|
akshare/stock_feature/stock_margin_em.py,sha256=DRuZ3nwtpYq55Yq3WF8jFlj4xEou3bf9krcc_JbJOPM,3327
|
341
341
|
akshare/stock_feature/stock_margin_sse.py,sha256=0Lq9dS21cJVMNMM-L1aEnsnO3V-0BSOr7kwEl9s9YEU,6804
|
@@ -394,10 +394,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
|
|
394
394
|
akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
|
395
395
|
akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
|
396
396
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
397
|
-
akshare-1.16.
|
397
|
+
akshare-1.16.77.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
398
398
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
399
399
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
400
|
-
akshare-1.16.
|
401
|
-
akshare-1.16.
|
402
|
-
akshare-1.16.
|
403
|
-
akshare-1.16.
|
400
|
+
akshare-1.16.77.dist-info/METADATA,sha256=Vxm0tm1qOq0EJhThxsTicBe2_b3ZbLRLcl9PPyqYjn0,12591
|
401
|
+
akshare-1.16.77.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
402
|
+
akshare-1.16.77.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
403
|
+
akshare-1.16.77.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|