chinadata 0.0.6__py3-none-any.whl → 0.0.8__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.
- chinadata/__pycache__/__init__.cpython-39.pyc +0 -0
- chinadata/__pycache__/ca_data.cpython-39.pyc +0 -0
- chinadata/ca_data.py +64 -36
- chinadata/example.py +17 -2
- {chinadata-0.0.6.dist-info → chinadata-0.0.8.dist-info}/METADATA +1 -1
- chinadata-0.0.8.dist-info/RECORD +9 -0
- chinadata-0.0.6.dist-info/RECORD +0 -7
- {chinadata-0.0.6.dist-info → chinadata-0.0.8.dist-info}/WHEEL +0 -0
- {chinadata-0.0.6.dist-info → chinadata-0.0.8.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
chinadata/ca_data.py
CHANGED
|
@@ -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
|
"""
|
|
@@ -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,13 @@ 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
71
|
print(f"Failed to fetch data. Status code: {response.status_code}")
|
|
57
72
|
print(response.text)
|
|
58
|
-
|
|
73
|
+
raise ValueError("数据获取错误",response.text)
|
|
59
74
|
|
|
60
75
|
|
|
61
76
|
|
|
@@ -281,7 +296,8 @@ class pro_api:
|
|
|
281
296
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
282
297
|
|
|
283
298
|
def news(self, api_name='news', **kwargs):
|
|
284
|
-
return
|
|
299
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
300
|
+
|
|
285
301
|
|
|
286
302
|
def weekly(self, api_name='weekly', **kwargs):
|
|
287
303
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -305,7 +321,7 @@ class pro_api:
|
|
|
305
321
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
306
322
|
|
|
307
323
|
def cctv_news(self, api_name='cctv_news', **kwargs):
|
|
308
|
-
return
|
|
324
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
309
325
|
|
|
310
326
|
def index_daily(self, api_name='index_daily', **kwargs):
|
|
311
327
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -392,7 +408,7 @@ class pro_api:
|
|
|
392
408
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
393
409
|
|
|
394
410
|
def hk_daily(self, api_name='hk_daily', **kwargs):
|
|
395
|
-
return
|
|
411
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
396
412
|
|
|
397
413
|
def stk_managers(self, api_name='stk_managers', **kwargs):
|
|
398
414
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -401,7 +417,7 @@ class pro_api:
|
|
|
401
417
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
402
418
|
|
|
403
419
|
def major_news(self, api_name='major_news', **kwargs):
|
|
404
|
-
return
|
|
420
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
405
421
|
|
|
406
422
|
def ggt_daily(self, api_name='ggt_daily', **kwargs):
|
|
407
423
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -488,7 +504,7 @@ class pro_api:
|
|
|
488
504
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
489
505
|
|
|
490
506
|
def us_daily(self, api_name='us_daily', **kwargs):
|
|
491
|
-
return
|
|
507
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
492
508
|
|
|
493
509
|
def bak_daily(self, api_name='bak_daily', **kwargs):
|
|
494
510
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -504,6 +520,11 @@ class pro_api:
|
|
|
504
520
|
|
|
505
521
|
def ths_daily(self, api_name='ths_daily', **kwargs):
|
|
506
522
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
523
|
+
def dc_index(self, api_name='dc_index', **kwargs):
|
|
524
|
+
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
525
|
+
|
|
526
|
+
def dc_member(self, api_name='dc_member', **kwargs):
|
|
527
|
+
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
507
528
|
|
|
508
529
|
def ths_member(self, api_name='ths_member', **kwargs):
|
|
509
530
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -569,7 +590,7 @@ class pro_api:
|
|
|
569
590
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
570
591
|
|
|
571
592
|
def hk_mins(self, api_name='hk_mins', **kwargs):
|
|
572
|
-
return
|
|
593
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
573
594
|
|
|
574
595
|
def cb_rate(self, api_name='cb_rate', **kwargs):
|
|
575
596
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -587,7 +608,7 @@ class pro_api:
|
|
|
587
608
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
588
609
|
|
|
589
610
|
def ft_mins(self, api_name='ft_mins', **kwargs):
|
|
590
|
-
return
|
|
611
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
591
612
|
|
|
592
613
|
def realtime_quote(self, api_name='realtime_quote', **kwargs):
|
|
593
614
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -647,16 +668,16 @@ class pro_api:
|
|
|
647
668
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
648
669
|
|
|
649
670
|
def us_daily_adj(self, api_name='us_daily_adj', **kwargs):
|
|
650
|
-
return
|
|
671
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
651
672
|
|
|
652
673
|
def hk_daily_adj(self, api_name='hk_daily_adj', **kwargs):
|
|
653
|
-
return
|
|
674
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
654
675
|
|
|
655
676
|
def rt_fut_min(self, api_name='rt_fut_min', **kwargs):
|
|
656
|
-
return
|
|
677
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
657
678
|
|
|
658
679
|
def opt_mins(self, api_name='opt_mins', **kwargs):
|
|
659
|
-
return
|
|
680
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
660
681
|
|
|
661
682
|
def moneyflow_ind_ths(self, api_name='moneyflow_ind_ths', **kwargs):
|
|
662
683
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -684,9 +705,10 @@ class pro_api:
|
|
|
684
705
|
|
|
685
706
|
def stk_auction_o(self, api_name='stk_auction_o', **kwargs):
|
|
686
707
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
708
|
+
# return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
687
709
|
|
|
688
710
|
def stk_auction_c(self, api_name='stk_auction_c', **kwargs):
|
|
689
|
-
return
|
|
711
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
690
712
|
|
|
691
713
|
def limit_list_ths(self, api_name='limit_list_ths', **kwargs):
|
|
692
714
|
return self.query(token=self.token, api_name=api_name, **kwargs)
|
|
@@ -751,6 +773,7 @@ def pro_bar(ts_code='', api=None, start_date='', end_date='', freq='D', asset='E
|
|
|
751
773
|
"""
|
|
752
774
|
# url = "http://127.0.0.1:9002/tp"
|
|
753
775
|
url = "http://152.136.171.135:9002/tp"
|
|
776
|
+
|
|
754
777
|
params = {
|
|
755
778
|
'token':get_token(),
|
|
756
779
|
'ts_code':ts_code,
|
|
@@ -769,22 +792,27 @@ def pro_bar(ts_code='', api=None, start_date='', end_date='', freq='D', asset='E
|
|
|
769
792
|
"fields" : fields,
|
|
770
793
|
"contract_type" : contract_type
|
|
771
794
|
}
|
|
795
|
+
if 'min' in freq :
|
|
796
|
+
return '此接口为单独权限,和积分没有关系,需要单独购买'
|
|
797
|
+
else:
|
|
772
798
|
|
|
773
|
-
|
|
799
|
+
response = requests.post(url, json=params,)
|
|
774
800
|
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
801
|
+
if response.status_code == 200:
|
|
802
|
+
try:
|
|
803
|
+
data = response.json()
|
|
804
|
+
# print(data)
|
|
805
|
+
if data == 'token无效或已超期,请重新购买':
|
|
806
|
+
return data
|
|
807
|
+
else:
|
|
808
|
+
df = pd.DataFrame(data)
|
|
809
|
+
return df
|
|
810
|
+
except ValueError as e:
|
|
811
|
+
# print("Error parsing JSON response:", e)
|
|
812
|
+
# return None
|
|
813
|
+
raise ValueError(e)
|
|
814
|
+
else:
|
|
815
|
+
|
|
816
|
+
print(f"Failed to fetch data. Status code: {response.status_code}")
|
|
817
|
+
print(response.text)
|
|
818
|
+
raise ValueError("数据获取错误")
|
chinadata/example.py
CHANGED
|
@@ -6,14 +6,29 @@ pip install chinadata
|
|
|
6
6
|
"""
|
|
7
7
|
#2、
|
|
8
8
|
import chinadata.ca_data as ts
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
ts.set_token('jdd07f13a9e334456bfde98ffd7be21ec26')
|
|
12
|
+
pro=ts.pro_api('jdd07f13a9e334456bfde98ffd7be21ec26')
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# 你要测量的代码块
|
|
10
17
|
|
|
11
18
|
# #查询当前所有正常上市交易的股票列表
|
|
12
|
-
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
|
|
19
|
+
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date',timeout=100)
|
|
13
20
|
print(data)
|
|
14
21
|
|
|
22
|
+
#
|
|
23
|
+
df = ts.pro_bar(ts_code='000007.SZ', start_date='20240817', end_date='20241215')
|
|
24
|
+
print(df)
|
|
25
|
+
|
|
26
|
+
|
|
15
27
|
|
|
28
|
+
# pro = ts.pro_api()
|
|
16
29
|
|
|
30
|
+
df = pro.daily(ts_code='000001.SZ', start_date='20000701', end_date='20180718')
|
|
31
|
+
print(df)
|
|
17
32
|
|
|
18
33
|
|
|
19
34
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
chinadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
chinadata/ca_data.py,sha256=-XyIk8CrlWLQmWhGEe2r-2HrkOOMvtmlgMCSBb4BeE0,34580
|
|
3
|
+
chinadata/example.py,sha256=Sx6pB8iXaO802iXqjxK7YG0djJ4-xfCeEyxJsEdbp2U,662
|
|
4
|
+
chinadata/__pycache__/__init__.cpython-39.pyc,sha256=lKHpULD0OJDbXwp5XGcechnIx0op6A2wVR3j91dTffw,145
|
|
5
|
+
chinadata/__pycache__/ca_data.cpython-39.pyc,sha256=muqYg-MFjQrzr9bNHaLH0ToPeaNwdeWJiDoPnYBpZNQ,37842
|
|
6
|
+
chinadata-0.0.8.dist-info/METADATA,sha256=dyhT93JOGEijVldxgnqtdlUW2gtR4tNAYr-n15ZEcBY,163
|
|
7
|
+
chinadata-0.0.8.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
8
|
+
chinadata-0.0.8.dist-info/top_level.txt,sha256=Ptxvu9uzRHP4kVGRf413KuwSvsY2mk_KgQJ6ssWwisU,10
|
|
9
|
+
chinadata-0.0.8.dist-info/RECORD,,
|
chinadata-0.0.6.dist-info/RECORD
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
chinadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
chinadata/ca_data.py,sha256=jdlPqvGk_3IhqpqauP9sLBFvADjo00vPzCQjLZ80uCQ,33433
|
|
3
|
-
chinadata/example.py,sha256=6TtuGUndqYhbtSmgGRaRnvKfylrdpV6tlNqaQuThTMs,346
|
|
4
|
-
chinadata-0.0.6.dist-info/METADATA,sha256=sdMV_BJj8qmkEjblIFxQnBu3RoLhb6XrOHR5l0HitOQ,163
|
|
5
|
-
chinadata-0.0.6.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
6
|
-
chinadata-0.0.6.dist-info/top_level.txt,sha256=Ptxvu9uzRHP4kVGRf413KuwSvsY2mk_KgQJ6ssWwisU,10
|
|
7
|
-
chinadata-0.0.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|