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中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
python使用rsa加密算法模块模拟新浪微博登录
Jan 22 Python
python中去空格函数的用法
Aug 21 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
windows下添加Python环境变量的方法汇总
May 14 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
Python 处理文件的几种方式
Aug 23 Python
Pygame的程序开始示例代码
May 07 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 Python
python中lower函数实现方法及用法讲解
Dec 23 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
destoon复制新模块的方法
2014/06/21 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
从0开始学Vue
2016/10/27 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python编程实现的简单Web服务器示例
2017/06/22 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
执行总经理岗位职责
2014/02/03 职场文书
活动策划求职信模板
2014/04/21 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
2015年教师国培感言
2015/08/01 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
Ruby处理YAML和json数据
2022/04/18 Ruby