Python实现把json格式转换成文本或sql文件


Posted in Python onJuly 10, 2015

python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件?

下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件。

[root@bogon tutorial]# vi json2txt.py 
#-*- coding: UTF-8 -*-
import json

data = []
with open('./tencent_test.json') as f:
  for line in f:
    data.append(json.loads(line))

#print json.dumps(data, ensure_ascii=False)


import codecs
file_object = codecs.open('tencent.txt', 'w' ,"utf-8")
str = "\r\n"
splitstr = "#_#"
for item in data:
  #print json.dumps(item)
  #str = str + "insert into tencent(name,catalog,workLocation,recruitNumber,detailLink,publishTime) values "
  #str = str + "'%s','%s','%s','%s','%s'\r\n" % (item['parentTitle'],item['parentLink'],item['author'],item['link'],item['title'])
  #print json.loads(item['author']) + "\r\n"
  str = "%s#_#%s#_#%s#_#%s#_#%s\r\n" % (item['parentTitle'],item['parentLink'],item['author'],item['link'],item['title'].strip())
  file_object.write(str)

#import codecs
#file_object = codecs.open('tencent.txt', 'w' ,"utf-8")
#file_object.write(str)
file_object.close()
print "success"

注:如果数据量过大不宜全部放在str里一次性写入文件。可以考虑逐行写入,或者到达一定程度时批量写入。

另外:python通过strip(rm)替换字符串,当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ')。

测试:

json格式的数据

[root@bogon tutorial]# vi tencent_test.json 

{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}
{"author": "作者", "parentTitle": "父标题", "title": "标题", "pageUrl": "pageurl", "link": "linkurl", "parentLink": "parenturl"}

运行python json2txt.py

[root@bogon tutorial]# python json2txt.py 
success
[root@bogon tutorial]# more tencent.txt 
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
父标题#_#parenturl#_#作者#_#linkurl#_#标题
Python 相关文章推荐
python实现ftp客户端示例分享
Feb 17 Python
python实现每次处理一个字符的三种方法
Oct 09 Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
Python中datetime常用时间处理方法
Jun 15 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
python多进程控制学习小结
Oct 31 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
Django多个app urls配置代码实例
Nov 26 Python
Python中time与datetime模块使用方法详解
Mar 31 Python
Python中的一些陷阱与技巧小结
Jul 10 #Python
Python中的fileinput模块的简单实用示例
Jul 09 #Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 #Python
python冒泡排序简单实现方法
Jul 09 #Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 #Python
python简单猜数游戏实例
Jul 09 #Python
Python使用turtule画五角星的方法
Jul 09 #Python
You might like
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
JavaScript window.location对象
2014/11/14 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
Hadoop中的Python框架的使用指南
2015/04/22 Python
python访问系统环境变量的方法
2015/04/29 Python
Python通过select实现异步IO的方法
2015/06/04 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python仿抖音表白神器
2019/04/08 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
StringBuilder和String的区别
2015/05/18 面试题
研究生求职推荐信范文
2013/11/30 职场文书
美发活动策划书
2014/01/14 职场文书
新闻发布会主持词
2014/03/28 职场文书
毕业欢送会致辞
2015/07/29 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA