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 Web开发模板引擎优缺点总结
May 06 Python
python连接oracle数据库实例
Oct 17 Python
在Django的通用视图中处理Context的方法
Jul 21 Python
使用Python对IP进行转换的一些操作技巧小结
Nov 09 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
Python读取txt某几列绘图的方法
Oct 14 Python
简单了解python中的与或非运算
Sep 18 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
Feb 06 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
Python操作Jira库常用方法解析
Apr 10 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
Python基于gevent实现文件字符串查找器
Aug 11 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
桌面中心(二)数据库写入
2006/10/09 PHP
如何删除多级目录
2006/10/09 PHP
PHP常用代码
2006/11/23 PHP
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
简单介绍Ruby中的CGI编程
2015/04/10 Python
Python实现Linux监控的方法
2019/05/16 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
乡镇个人对照检查材料
2014/08/22 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书