Files
2026-01-17 21:21:30 +08:00

53 lines
1.4 KiB
Python

# -*- coding:utf-8 -*-
"""
国际期货
Created on 2016/10/01
@author: Jimmy Liu
@group : waditu
@contact: jimmysoa@sina.cn
"""
import json
import six
import pandas as pd
from tushare.futures import cons as ct
try:
from urllib.request import urlopen, Request
except ImportError:
from urllib2 import urlopen, Request
def get_intlfuture(symbols=None):
symbols = ct.INTL_FUTURE_CODE if symbols is None else symbols
df = _get_data(ct.INTL_FUTURE_URL%(ct.P_TYPE['http'], ct.DOMAINS['EM'],
ct.PAGES['INTL_FUT'], symbols,
_random(17)))
return df
def _get_data(url):
try:
request = Request(url)
data_str = urlopen(request, timeout=10).read()
data_str = data_str.split('=')[1]
data_str = data_str.replace('futures', '"futures"')
if six.PY3:
data_str = data_str.decode('utf-8')
data_str = json.loads(data_str)
df = pd.DataFrame([[col for col in row.split(',')] for row in data_str.values()[0]]
)
df = df[[1, 2, 5, 4, 6, 7, 13, 9, 17, 18, 16, 21, 22]]
df.columns = ct.INTL_FUTURES_COL
return df
except Exception as er:
print(str(er))
def _random(n=13):
from random import randint
start = 10**(n-1)
end = (10**n)-1
return str(randint(start, end))