json转csv
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的更多相关文章
- ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出
ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', ...
- python将json转csv
现有一个需求要将json转成excel,使用python将其转为csv格式,使用excel打开即可. import json import csv import codecs f = open('te ...
- solr6.6 导入 文本(txt/json/xml/csv)文件
参照:solr6.6 导入 pdf文件 重点就是三个配置文件 1.建立的data-config.xml 内容如下: <dataConfig> <dataSource name=&qu ...
- 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 ...
- 最简单的JS实现json转csv
工作久了,总会遇到各种各样的数据处理工作,比如同步数据,初始化一些数据,目前比较流行的交互数据格式就是JSON,可是服务器中得到的JSON数据如果提供给业务人员看的话可能会非常不方便,这时候,转成CS ...
- JSON导出CSV中文乱码解决方案
前言 以往datagrid导出数据全部在后台搞定,现在就想换中思路去解决,正常情况下使用easyui datagrid ajax获取数据源时都是json格式,那么此时需要导出数据时只要把该数据源扔出来 ...
- Mongodb 导出json 和csv 格式数据
导出到json: $ mongoexport.exe -d TestDB -c TestCollection -o ./test.json 导出到csv: If you want to outpu ...
- json与csv的基础用与法
json库是处理json格式的python标准库 有两个过程: 编码(encoding):将python数据类型转换为json格式的过程 解码(decoding):从json格式中解析数据得到的pyt ...
- 转载:python生成以及打开json、csv和txt文件
原文地址:https://blog.csdn.net/weixin_42555131/article/details/82012642 生成txt文件: mesg = "hello worl ...
随机推荐
- 【BZOJ】【1662】/【POJ】【3252】 【USACO 2006 Nov】Round Number
数位DP 同上一题Windy数 预处理求个组合数 然后同样的方法,这次是记录一下0和1的个数然后搞搞 Orz cxlove /************************************* ...
- 【ZOJ】【3329】One Person Game
概率DP/数学期望 kuangbin总结题目中的第三道 看来还是没有进入状态啊……都说是DP了……当然是要找[状态之间的转移关系]了…… 本题中dp[i]跟 dp[i-(k1+k2+k3)] 到dp[ ...
- windows下编译Libevent
下载最新的libevent,目前是 libevent-2.0.21-stable.tar.gz 修改“D:\libevent-2.0.21-stable\event_iocp.c”.“D:\libev ...
- [原]android不支持命名的semaphore
之前sem_open在iOS上, 创建命名的semaphore没有问题 (iOS不支持匿名的semaphore), 但是现在Android平台的sem_open时候报错,返回ENOSYS. 命名的se ...
- Java垃圾收集器
概述 说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物.事实上,GC的历史远远比Java久远,1960年诞生于MIT的Lisp是第一门真正使用 ...
- Interface Comparator
int compare(T o1, T o2) Compares its two arguments for order. Returns a negative integer, zero, or a ...
- POJ2632Crashing Robots
做模拟题做的我直接睡着了,题并不难,就是一个细心的问题,有一些细节问题注意了就差不多了,代码写的精美的一般找错误也好找一些,应该学着些好看的代码 #include<cstdio> #inc ...
- lintcode :最小路径和
题目: 最小路径和 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径. 样例 注意 你在同一时间只能向下或者向右移动一步 解题: 这个和求三角形的最小路径的差不多 ...
- 转:UGUI与NGUI的区别与优缺点
1. NGUI与UGUI的区别 1) uGUI的Canvas 有世界坐标和屏幕坐标 2) uGUI的Image可以使用material 3) UGUI通过Mask来裁剪,而NGUI通过Pa ...
- ASP.NET连接数据库并获取数据
关键词:连接对象的用法SqlConnection,SqlCommand,SqlDataAdapter *数据访问方式的写法 工具/原料 VS SQL SERVER 2012 R2 方法/步骤1: 1. ...