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')))

json转csv的更多相关文章

  1. ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出

    ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...

  2. tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)

    #tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', ...

  3. python将json转csv

    现有一个需求要将json转成excel,使用python将其转为csv格式,使用excel打开即可. import json import csv import codecs f = open('te ...

  4. solr6.6 导入 文本(txt/json/xml/csv)文件

    参照:solr6.6 导入 pdf文件 重点就是三个配置文件 1.建立的data-config.xml 内容如下: <dataConfig> <dataSource name=&qu ...

  5. solr File Upload "Unsupported ContentType: application/vnd.ms-excel Not in: [application/xml, application/csv, application/json, text/json, text/csv, text/xml, application/javabin]",

    今天在用solr管理界面导入文件时报错:"Unsupported ContentType: application/vnd.ms-excel  Not in: [application/xm ...

  6. 最简单的JS实现json转csv

    工作久了,总会遇到各种各样的数据处理工作,比如同步数据,初始化一些数据,目前比较流行的交互数据格式就是JSON,可是服务器中得到的JSON数据如果提供给业务人员看的话可能会非常不方便,这时候,转成CS ...

  7. JSON导出CSV中文乱码解决方案

    前言 以往datagrid导出数据全部在后台搞定,现在就想换中思路去解决,正常情况下使用easyui datagrid ajax获取数据源时都是json格式,那么此时需要导出数据时只要把该数据源扔出来 ...

  8. Mongodb 导出json 和csv 格式数据

    导出到json: $ mongoexport.exe  -d TestDB -c TestCollection -o  ./test.json 导出到csv: If you want to outpu ...

  9. json与csv的基础用与法

    json库是处理json格式的python标准库 有两个过程: 编码(encoding):将python数据类型转换为json格式的过程 解码(decoding):从json格式中解析数据得到的pyt ...

  10. 转载:python生成以及打开json、csv和txt文件

    原文地址:https://blog.csdn.net/weixin_42555131/article/details/82012642 生成txt文件: mesg = "hello worl ...

随机推荐

  1. 【BZOJ】【2588】COT(Count On a Tree)

    可持久化线段树 maya……树么……转化成序列……所以就写了个树链剖分……然后每个点保存的是从它到根的可持久化线段树. 然后就像序列一样查询……注意是多个左端点和多个右端点,处理方法类似BZOJ 19 ...

  2. UI框架说明

    JQueryEasyUI jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编 ...

  3. 16进制串hex与ASCII字符串相互转换

    提供两个函数,方便十六进制串与ASCII 字符串之间的相互转换,使用函数需要注意的是返回的串是在堆上通过 calloc 分配的,所以,记得使用完返回值释放该块,并且将指向该块的指针 =NULL . c ...

  4. asp.net mvc4 使用KindEditor文本编辑器

    最近做项目要用文本编辑器,编辑器好多种,这里介绍KindEditor在asp.net mvc4中的使用方法. 一.准备工作: 1.下载KindEditor.去官网:http://www.kindsof ...

  5. [STL]算法的泛化过程

    “选择了错误的算法,便注定了失败的命运”.最近对这句话感触颇深,经常因为一开始思路错误,修改半天,到头来却都是无用功,所以学好算法势在必行. 算法的泛化过程 如何设计一个算法,使他适用于任何(大多数) ...

  6. jQuery经典面试题及答案精选[转载]

    问题:jQuery的美元符号$有什么作用? 回答:其实美元符号$只是”jQuery”的别名,它是jQuery的选择器,如下代码: $(document).ready(function(){ }); 当 ...

  7. POJ1013Counterfeit Dollar

    这个题主要是判断硬币真假,可能轻可能重,称三次,要输出哪枚是假币,还要输出是重的还是轻的,所以最主要的是标记变量 #include<cstdio> #include<cstring& ...

  8. poj 1026 Cipher

    置换群就可以搞定!!! 注意下格式就好了…… #include<iostream> #include<stdio.h> #include<algorithm> #i ...

  9. LR_问题_在导入wsdl时出现parsing error

    问题描述:使用LR录制webservice协议的脚本,在导入wsdl时出现parsing error,详见图 问题解决:在导入wsdl时输入的地址错误,只指定了地址的虚拟目录名称,未指定方法名称,应该 ...

  10. App应用与思考

    我为什么没有加入苹果的iOS APP移动大军?http://blog.csdn.net/Code_GodFather/article/details/7956858 ----------------- ...