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 ...
随机推荐
- DevExpress控件使用系列--ASPxGridView+Popup+Tab
1.控件功能 列表控件展示数据.弹框控件执行编辑操作.Tab控件实现多标签编辑操官方说明 2.官方示例 2.1 ASPxGridView http ...
- SQL SERVER其它函数
本篇文章还是学习<程序员的SQL金典>内容的记录,此次将讲解的是SQL SERVER常用的其它函数.(其它数据库这里就不罗列了,想看更多的可以关注<程序员的SQL金典>). 具 ...
- 【BZOJ】【1272】【BeiJingWC2008】Gate of Babylon
组合数学+容斥原理 Orz zyf-zyf 多重集组合数0.0还带个数限制? ——> <组合数学>第6章 6.2带重复的组合 组合数还要模P 0.0? ——> Lucas ...
- Leetcode#81 Search in Rotated Sorted Array II
原题地址 如果不存在重复元素,仅通过判断数组的首尾元素即可判断数组是否连续,但是有重复元素的话就不行了,最坏情况下所有元素都一样,此时只能通过线性扫描确定是否连续. 设对于规模为n的问题的工作量为T( ...
- 高性能网络编程1----accept建立连接
转 http://taohui.org.cn/tcpperf1.html 陶辉 taohui.org.cn 回到应用层,往往只需要调用类似于accept的API就可以建立TCP连接.建立连接的流程大 ...
- 汇编语言中"[]"的用法
"[]"的用法在"常见问题"已经有所说明,引用如下: 1.push dword ptr [024c1100] 压栈024c1100值的双字 2.cmp eax, ...
- 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
转自 http://tech-wonderland.net/blog/summary-of-ksum-problems.html 前言: 做过leetcode的人都知道, 里面有2sum, 3sum ...
- http://my.oschina.net/u/1185331/blog/502350
http://my.oschina.net/u/1185331/blog/502350
- Android 程序运行之后,禁止休眠
在程序中添加 // 禁止休眠功能 getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager. ...
- lintcode :搜索旋转排序数组
题目 搜索旋转排序数组 假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2).给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引 ...