
import re # csv格式
# 'k1,k2,k3\nv1,v2,v3\nv4,v5,v6\n' market_list_data = {
"data": [
{
"finance_mic": "SS",
"finance_name": "上海证券交易所"
},
{
"finance_mic": "SZ",
"finance_name": "深圳证券交易所"
},
{
"finance_mic": "CCFX",
"finance_name": "中国金融期货交易所"
}
]
} tick_data = {
"data": {
"tick": {
"fields": [
"business_time",
"hq_px",
"business_amount",
"business_balance",
"business_count",
"business_direction"
],
"600570.SS": [
[
20150907092501,
41.58,
13000378,
540555717,
0,
0
],
[
20150907093000,
42.1,
148300,
6254573,
0,
1
]
]
}
}
} kline_data = {
"data": {
"candle": {
"fields": [
"min_time",
"open_px",
"high_px",
"low_px",
"close_px"
],
"600570.SS": [
[
201501061401,
54890,
54890,
54600,
54600
],
[
201501061402,
54610,
54610,
54400,
54400
]
]
}
}
} trend_data = {
"data": {
"trend": {
"fields": [
"min_time",
"last_px",
"avg_px",
"business_amount"
],
"600570.SS": [
[
201501090930,
54.98,
54.98,
28327
],
[
201501090931,
54.63,
54.829486,
49700
]
]
}
}
} real_data = {
"data": {
"snapshot": {
"fields": [
"data_timestamp",
"shares_per_hand",
"open_px",
"high_px",
"low_px",
"last_px",
"business_amount",
"business_balance",
"offer_grp",
"bid_grp"
],
"600570.SS": [
150305133,
100,
53980,
56000,
52510,
54950,
14465811,
788995643,
"54850,9887,0,54860,1500,0,54900,13300,0,54950,10000,0,54990,800,0,",
"54820,8000,0,54810,2100,0,54800,202900,0,54770,100,0,54720,1200,0,"
],
"000001.SZ": [
153229327,
100,
15560,
15830,
15300,
15480,
170012067,
2634796408,
"15490,93700,0,15500,260609,0,15510,69996,0,15520,87008,0,15530,71400,0,",
"15480,438292,0,15470,149000,0,15460,411400,0,15450,414573,0,15440,303733,0,"
]
}
}
} trend5day_data = {
"data": {
"trend": {
"fields": [
"min_time",
"last_px",
"avg_px",
"business_amount",
"business_balance"
],
"600570.SS": [
[
201504170931,
124.07,
124.83,
387955,
48426658
],
[
201504170932,
123.01,
124.59,
572900,
71378859
],
[
201504170933,
121.89,
123.94,
834100,
103378268
],
[
201504170934,
122.44,
123.74,
941239,
116465390
]
]
}
}
} def one_prod_to_csv(data):
csv = '' # head
csv = csv + ','.join(data.get('fields')) + '\n' # body
for item in data.keys():
if not item is 'fields':
body_key = item body_data = data.get(body_key) for item in body_data:
new_item = []
for v in item:
new_item.append(re.sub(r',', '|', str(v)))
csv = csv + ','.join(new_item) + '\n' return csv def multi_prod_to_csv(data):
csv = '' # head
csv = csv + ','.join(data.get('fields')) + '\n' # body
for k,v in data.items():
if not k is 'fields':
new_v = []
for item in v:
new_v.append(re.sub(r',', '|', str(item)))
csv = csv + ','.join(new_v) + '\n' return csv def dict_to_csv(data):
csv = '' head_data = []
body_data = [] for item in data[0].keys():
head_data.append(item) # head
csv = csv + ','.join(head_data) + '\n' # body
for item in data:
new_item = []
for k,v in item.items():
new_item.append(v)
body_data.append(new_item) for item in body_data:
csv = csv + ','.join(item) + '\n' return csv def market_list_to_csv(data):
return dict_to_csv(data) def tick_to_csv(data):
return one_prod_to_csv(data) def kline_to_csv(data):
return one_prod_to_csv(data) def trend5day_to_csv(data):
return one_prod_to_csv(data) def trend_to_csv(data):
return one_prod_to_csv(data) def real_to_csv(data):
return multi_prod_to_csv(data) print(market_list_to_csv(market_list_data.get('data')))
print(tick_to_csv(tick_data.get('data').get('tick')))
print(kline_to_csv(kline_data.get('data').get('candle')))
print(trend5day_to_csv(trend5day_data.get('data').get('trend')))
print(trend_to_csv(trend_data.get('data').get('trend')))
print(real_to_csv(real_data.get('data').get('snapshot')))