chinadata 0.0.1__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/__init__.py +0 -0
- chinadata/example.py +10 -0
- chinadata/pp.py +65 -0
- chinadata/qq.py +60 -0
- chinadata-0.0.1.dist-info/METADATA +9 -0
- chinadata-0.0.1.dist-info/RECORD +8 -0
- chinadata-0.0.1.dist-info/WHEEL +5 -0
- chinadata-0.0.1.dist-info/top_level.txt +1 -0
chinadata/__init__.py
ADDED
|
File without changes
|
chinadata/example.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#1# pip install chinadata
|
|
2
|
+
from chinadata.pp import get_stock_data
|
|
3
|
+
|
|
4
|
+
df = get_stock_data(token='41aed146ecf59f5b7628bc6fcacf675104',ts_code='150018.SZ', start_date='20180101', end_date='20181029',asset='FD')
|
|
5
|
+
print(df)
|
|
6
|
+
|
|
7
|
+
from chinadata.qq import fetch_stock_data
|
|
8
|
+
|
|
9
|
+
df = fetch_stock_data(token='41aed146ecf59f5b7628bc6fcacf675104',api_name='stock_basic',fields='ts_code,symbol,name,area,industry,list_date',exchange='', list_status='L', )
|
|
10
|
+
print(df)
|
chinadata/pp.py
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
|
|
2
|
+
import time
|
|
3
|
+
import warnings
|
|
4
|
+
warnings.simplefilter(action='ignore', category=FutureWarning)#消除告警
|
|
5
|
+
|
|
6
|
+
import requests
|
|
7
|
+
import pandas as pd
|
|
8
|
+
|
|
9
|
+
def get_stock_data(token,ts_code='', api=None, start_date='', end_date='', freq='D', asset='E',
|
|
10
|
+
exchange='',
|
|
11
|
+
adj = None,
|
|
12
|
+
ma = [],
|
|
13
|
+
factors = None,
|
|
14
|
+
adjfactor = False,
|
|
15
|
+
offset = None,
|
|
16
|
+
limit = None,
|
|
17
|
+
fields = '',
|
|
18
|
+
contract_type = ''):
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
# url = "http://127.0.01:9002/tp"
|
|
23
|
+
url = "http://152.136.171.135:9002/tp"
|
|
24
|
+
params = {
|
|
25
|
+
'token':token,
|
|
26
|
+
'ts_code':ts_code,
|
|
27
|
+
'api':api,
|
|
28
|
+
'start_date':start_date,
|
|
29
|
+
'end_date':end_date,
|
|
30
|
+
'freq':freq,
|
|
31
|
+
'asset':asset,
|
|
32
|
+
'exchange':exchange,
|
|
33
|
+
'adj' :adj,
|
|
34
|
+
'ma' :ma,
|
|
35
|
+
"factors" : factors,
|
|
36
|
+
"adjfactor" : adjfactor,
|
|
37
|
+
"offset" : offset,
|
|
38
|
+
"limit" :limit,
|
|
39
|
+
"fields" : fields,
|
|
40
|
+
"contract_type" : contract_type
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
response = requests.post(url, json=params,)
|
|
44
|
+
|
|
45
|
+
if response.status_code == 200:
|
|
46
|
+
try:
|
|
47
|
+
data = response.json()
|
|
48
|
+
# print(data)
|
|
49
|
+
if data == 'token无效或已超期,请重新购买':
|
|
50
|
+
return data
|
|
51
|
+
else:
|
|
52
|
+
df = pd.DataFrame(data)
|
|
53
|
+
return df
|
|
54
|
+
except ValueError as e:
|
|
55
|
+
print("Error parsing JSON response:", e)
|
|
56
|
+
return None
|
|
57
|
+
else:
|
|
58
|
+
print(f"Failed to fetch data. Status code: {response.status_code}")
|
|
59
|
+
print(response.text)
|
|
60
|
+
return None
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
chinadata/qq.py
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import requests
|
|
2
|
+
import pandas as pd
|
|
3
|
+
import time
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def fetch_stock_data(token,api_name,fields='',**kwargs):
|
|
7
|
+
"""
|
|
8
|
+
Fetch stock data from a given URL with specified parameters.
|
|
9
|
+
|
|
10
|
+
Parameters:
|
|
11
|
+
|
|
12
|
+
ts_code (str): The stock code to fetch data for.
|
|
13
|
+
start_date (str): The start date for fetching data (in 'YYYY-MM-DD HH:MM:SS' format).
|
|
14
|
+
end_date (str): The end date for fetching data (in 'YYYY-MM-DD HH:MM:SS' format).
|
|
15
|
+
freq (str): The frequency of the data (e.g., '1min', '5min','15min', '30min', '60min').
|
|
16
|
+
token (str): The access token for the data source. Default is provided.
|
|
17
|
+
offset (str, 可选): 数据偏移量,用于分页获取数据,默认为'0'。当需要获取更多数据时,可以增大此值。
|
|
18
|
+
freq (str, 可选): 数据频率,指定返回数据的时间间隔,例如'1min'(1分钟)、'5min'(5分钟)、'15min'(15分钟)、
|
|
19
|
+
'30min'(30分钟)、'60min'(60分钟,即1小时)等。默认为'60min'。
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
pd.DataFrame: A DataFrame containing the fetched stock data.
|
|
23
|
+
"""
|
|
24
|
+
# url="http://127.0.0.1:9002/tq"
|
|
25
|
+
url = "http://152.136.171.135:9002/tq"
|
|
26
|
+
|
|
27
|
+
params = {
|
|
28
|
+
'token':token,
|
|
29
|
+
'api_name': api_name,
|
|
30
|
+
'params': kwargs,
|
|
31
|
+
'fields': fields,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
response = requests.post(url, json=params)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
if response.status_code == 200:
|
|
41
|
+
try:
|
|
42
|
+
data = response.json()
|
|
43
|
+
# print(data)
|
|
44
|
+
if data == 'token无效或已超期,请重新购买':
|
|
45
|
+
return data
|
|
46
|
+
else:
|
|
47
|
+
df = pd.DataFrame(data)
|
|
48
|
+
return df
|
|
49
|
+
except ValueError as e:
|
|
50
|
+
print("Error parsing JSON response:", e)
|
|
51
|
+
return None
|
|
52
|
+
else:
|
|
53
|
+
print(f"Failed to fetch data. Status code: {response.status_code}")
|
|
54
|
+
print(response.text)
|
|
55
|
+
return None
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
# 示例调用
|
|
59
|
+
|
|
60
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
chinadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
chinadata/example.py,sha256=ebiZrMrz3eCln1FHamHERnd-ZoBjTlCInNNTLQpI11A,453
|
|
3
|
+
chinadata/pp.py,sha256=BYvI9cMFXPl3PyfBWJXMAuiW_g1MXvhYE50oUyf7CNY,1663
|
|
4
|
+
chinadata/qq.py,sha256=rVAlpYx_6YxPq2X60EhJBeWKjPmJWBYRTQR12V6Bi9Y,1954
|
|
5
|
+
chinadata-0.0.1.dist-info/METADATA,sha256=16jbxy5vNdFZ2PrTPEj3RF6yDW_E3pFUz_Pl7jL8Ktg,163
|
|
6
|
+
chinadata-0.0.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
7
|
+
chinadata-0.0.1.dist-info/top_level.txt,sha256=Ptxvu9uzRHP4kVGRf413KuwSvsY2mk_KgQJ6ssWwisU,10
|
|
8
|
+
chinadata-0.0.1.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
chinadata
|