chinadata 0.0.6__tar.gz → 0.1.8__tar.gz
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.
- {chinadata-0.0.6 → chinadata-0.1.8}/PKG-INFO +1 -1
- {chinadata-0.0.6 → chinadata-0.1.8}/chinadata/ca_data.py +68 -40
- chinadata-0.1.8/chinadata/example.py +33 -0
- {chinadata-0.0.6 → chinadata-0.1.8}/chinadata.egg-info/PKG-INFO +1 -1
- {chinadata-0.0.6 → chinadata-0.1.8}/setup.py +1 -1
- chinadata-0.0.6/chinadata/example.py +0 -19
- {chinadata-0.0.6 → chinadata-0.1.8}/chinadata/__init__.py +0 -0
- {chinadata-0.0.6 → chinadata-0.1.8}/chinadata.egg-info/SOURCES.txt +0 -0
- {chinadata-0.0.6 → chinadata-0.1.8}/chinadata.egg-info/dependency_links.txt +0 -0
- {chinadata-0.0.6 → chinadata-0.1.8}/chinadata.egg-info/requires.txt +0 -0
- {chinadata-0.0.6 → chinadata-0.1.8}/chinadata.egg-info/top_level.txt +0 -0
- {chinadata-0.0.6 → chinadata-0.1.8}/setup.cfg +0 -0
|
@@ -3,12 +3,24 @@ import pandas as pd
|
|
|
3
3
|
import time
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
class pro_api:
|
|
7
|
+
# def __init__(self, token):
|
|
8
|
+
# self.token = token # 实例变量 name
|
|
9
|
+
# set_token(token)
|
|
10
|
+
|
|
11
|
+
def __init__(self, token=None):
|
|
12
|
+
if token is not None:
|
|
13
|
+
self.token = token # 实例变量,用于内部使用或调试
|
|
14
|
+
set_token(token)
|
|
15
|
+
|
|
16
|
+
else:
|
|
17
|
+
self.token = get_token()
|
|
18
|
+
if self.token is None:
|
|
19
|
+
raise ValueError("请设置token")
|
|
20
|
+
else:
|
|
21
|
+
pass
|
|
6
22
|
|
|
7
23
|
|
|
8
|
-
class pro_api:
|
|
9
|
-
def __init__(self, token):
|
|
10
|
-
self.token = token # 实例变量 name
|
|
11
|
-
set_token(token)
|
|
12
24
|
|
|
13
25
|
def query(self,api_name, fields='', **kwargs):
|
|
14
26
|
"""
|
|
@@ -29,7 +41,7 @@ class pro_api:
|
|
|
29
41
|
pd.DataFrame: A DataFrame containing the fetched stock data.
|
|
30
42
|
"""
|
|
31
43
|
# url="http://127.0.0.1:9002/tq"
|
|
32
|
-
url = "http://
|
|
44
|
+
url = "http://123.57.69.240:9002/tq"
|
|
33
45
|
|
|
34
46
|
params = {
|
|
35
47
|
'token': get_token(),
|
|
@@ -38,6 +50,8 @@ class pro_api:
|
|
|
38
50
|
'fields': fields,
|
|
39
51
|
}
|
|
40
52
|
|
|
53
|
+
|
|
54
|
+
|
|
41
55
|
response = requests.post(url, json=params)
|
|
42
56
|
|
|
43
57
|
if response.status_code == 200:
|
|
@@ -50,12 +64,11 @@ class pro_api:
|
|
|
50
64
|
df = pd.DataFrame(data)
|
|
51
65
|
return df
|
|
52
66
|
except ValueError as e:
|
|
53
|
-
|
|
54
|
-
|
|
67
|
+
|
|
68
|
+
raise ValueError("数据获取错误",e)
|
|
69
|
+
|
|
55
70
|
else:
|
|
56
|
-
|
|
57
|
-
print(response.text)
|
|
58
|
-
return None
|
|
71
|
+
raise ValueError("数据获取错误",response.status_code,response.text)
|
|
59
72
|
|
|
60
73
|
|
|
61
74
|
|
|
@@ -281,7 +294,8 @@ class pro_api:
|
|
|
281
294
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
282
295
|
|
|
283
296
|
def news(self, api_name='news', **kwargs):
|
|
284
|
-
return
|
|
297
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
298
|
+
|
|
285
299
|
|
|
286
300
|
def weekly(self, api_name='weekly', **kwargs):
|
|
287
301
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -305,7 +319,7 @@ class pro_api:
|
|
|
305
319
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
306
320
|
|
|
307
321
|
def cctv_news(self, api_name='cctv_news', **kwargs):
|
|
308
|
-
return
|
|
322
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
309
323
|
|
|
310
324
|
def index_daily(self, api_name='index_daily', **kwargs):
|
|
311
325
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -392,7 +406,7 @@ class pro_api:
|
|
|
392
406
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
393
407
|
|
|
394
408
|
def hk_daily(self, api_name='hk_daily', **kwargs):
|
|
395
|
-
return
|
|
409
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
396
410
|
|
|
397
411
|
def stk_managers(self, api_name='stk_managers', **kwargs):
|
|
398
412
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -401,7 +415,7 @@ class pro_api:
|
|
|
401
415
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
402
416
|
|
|
403
417
|
def major_news(self, api_name='major_news', **kwargs):
|
|
404
|
-
return
|
|
418
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
405
419
|
|
|
406
420
|
def ggt_daily(self, api_name='ggt_daily', **kwargs):
|
|
407
421
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -426,6 +440,10 @@ class pro_api:
|
|
|
426
440
|
|
|
427
441
|
def index_global(self, api_name='index_global', **kwargs):
|
|
428
442
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
443
|
+
def idx_factor_pro(self, api_name='idx_factor_pro', **kwargs):
|
|
444
|
+
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
445
|
+
|
|
446
|
+
|
|
429
447
|
|
|
430
448
|
def ncov_global(self, api_name='ncov_global', **kwargs):
|
|
431
449
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -488,7 +506,7 @@ class pro_api:
|
|
|
488
506
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
489
507
|
|
|
490
508
|
def us_daily(self, api_name='us_daily', **kwargs):
|
|
491
|
-
return
|
|
509
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
492
510
|
|
|
493
511
|
def bak_daily(self, api_name='bak_daily', **kwargs):
|
|
494
512
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -504,6 +522,11 @@ class pro_api:
|
|
|
504
522
|
|
|
505
523
|
def ths_daily(self, api_name='ths_daily', **kwargs):
|
|
506
524
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
525
|
+
def dc_index(self, api_name='dc_index', **kwargs):
|
|
526
|
+
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
527
|
+
|
|
528
|
+
def dc_member(self, api_name='dc_member', **kwargs):
|
|
529
|
+
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
507
530
|
|
|
508
531
|
def ths_member(self, api_name='ths_member', **kwargs):
|
|
509
532
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -569,7 +592,7 @@ class pro_api:
|
|
|
569
592
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
570
593
|
|
|
571
594
|
def hk_mins(self, api_name='hk_mins', **kwargs):
|
|
572
|
-
return
|
|
595
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
573
596
|
|
|
574
597
|
def cb_rate(self, api_name='cb_rate', **kwargs):
|
|
575
598
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -587,7 +610,7 @@ class pro_api:
|
|
|
587
610
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
588
611
|
|
|
589
612
|
def ft_mins(self, api_name='ft_mins', **kwargs):
|
|
590
|
-
return
|
|
613
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
591
614
|
|
|
592
615
|
def realtime_quote(self, api_name='realtime_quote', **kwargs):
|
|
593
616
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -647,16 +670,16 @@ class pro_api:
|
|
|
647
670
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
648
671
|
|
|
649
672
|
def us_daily_adj(self, api_name='us_daily_adj', **kwargs):
|
|
650
|
-
return
|
|
673
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
651
674
|
|
|
652
675
|
def hk_daily_adj(self, api_name='hk_daily_adj', **kwargs):
|
|
653
|
-
return
|
|
676
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
654
677
|
|
|
655
678
|
def rt_fut_min(self, api_name='rt_fut_min', **kwargs):
|
|
656
|
-
return
|
|
679
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
657
680
|
|
|
658
681
|
def opt_mins(self, api_name='opt_mins', **kwargs):
|
|
659
|
-
return
|
|
682
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
660
683
|
|
|
661
684
|
def moneyflow_ind_ths(self, api_name='moneyflow_ind_ths', **kwargs):
|
|
662
685
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -684,9 +707,10 @@ class pro_api:
|
|
|
684
707
|
|
|
685
708
|
def stk_auction_o(self, api_name='stk_auction_o', **kwargs):
|
|
686
709
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
710
|
+
# return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
687
711
|
|
|
688
712
|
def stk_auction_c(self, api_name='stk_auction_c', **kwargs):
|
|
689
|
-
return
|
|
713
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
690
714
|
|
|
691
715
|
def limit_list_ths(self, api_name='limit_list_ths', **kwargs):
|
|
692
716
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -750,7 +774,8 @@ def pro_bar(ts_code='', api=None, start_date='', end_date='', freq='D', asset='E
|
|
|
750
774
|
|
|
751
775
|
"""
|
|
752
776
|
# url = "http://127.0.0.1:9002/tp"
|
|
753
|
-
url = "http://
|
|
777
|
+
url = "http://123.57.69.240:9002/tp"
|
|
778
|
+
|
|
754
779
|
params = {
|
|
755
780
|
'token':get_token(),
|
|
756
781
|
'ts_code':ts_code,
|
|
@@ -769,22 +794,25 @@ def pro_bar(ts_code='', api=None, start_date='', end_date='', freq='D', asset='E
|
|
|
769
794
|
"fields" : fields,
|
|
770
795
|
"contract_type" : contract_type
|
|
771
796
|
}
|
|
797
|
+
if 'min' in freq :
|
|
798
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
799
|
+
else:
|
|
772
800
|
|
|
773
|
-
|
|
801
|
+
response = requests.post(url, json=params,)
|
|
774
802
|
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
803
|
+
if response.status_code == 200:
|
|
804
|
+
try:
|
|
805
|
+
data = response.json()
|
|
806
|
+
# print(data)
|
|
807
|
+
if data == 'token无效或已超期,请重新购买':
|
|
808
|
+
return data
|
|
809
|
+
else:
|
|
810
|
+
df = pd.DataFrame(data)
|
|
811
|
+
return df
|
|
812
|
+
except ValueError as e:
|
|
813
|
+
# print("Error parsing JSON response:", e)
|
|
814
|
+
# return None
|
|
815
|
+
raise ValueError(e)
|
|
816
|
+
else:
|
|
817
|
+
|
|
818
|
+
raise ValueError("数据获取错误",response.status_code,response.text)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#
|
|
2
|
+
"""
|
|
3
|
+
1、安装对应库
|
|
4
|
+
pip install chinadata
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
#2、
|
|
10
|
+
import chinadata.ca_data as ts
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
ts.set_token('3a9e334456c8405c00d013914953')
|
|
14
|
+
pro=ts.pro_api('a9e334456c8405c00d013914953')
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# 你要测量的代码块
|
|
19
|
+
|
|
20
|
+
# #查询当前所有正常上市交易的股票列表
|
|
21
|
+
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
|
|
22
|
+
print(data)
|
|
23
|
+
|
|
24
|
+
#
|
|
25
|
+
df = ts.pro_bar(ts_code='000007.SZ', start_date='20240817', end_date='20241215')
|
|
26
|
+
print(df)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
df = pro.daily(ts_code='000001.SZ', start_date='20000701', end_date='20180718')
|
|
30
|
+
print(df)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
"""
|
|
3
|
-
1、安装对应库
|
|
4
|
-
pip install chinadata
|
|
5
|
-
|
|
6
|
-
"""
|
|
7
|
-
#2、
|
|
8
|
-
import chinadata.ca_data as ts
|
|
9
|
-
pro = ts.pro_api('9e84ed87f29cf43f0a84c98cef6a69cc00')
|
|
10
|
-
|
|
11
|
-
# #查询当前所有正常上市交易的股票列表
|
|
12
|
-
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
|
|
13
|
-
print(data)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|