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操作mysql代码总结
Jun 01 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
python实现二维插值的三维显示
Dec 17 Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 Python
python变量命名的7条建议
Jul 04 Python
基于Python的ModbusTCP客户端实现详解
Jul 13 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
Python基础教程之输入输出和运算符
Jul 26 Python
Python列表嵌套常见坑点及解决方案
Sep 30 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 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
php Smarty模板生成html文档的方法
2010/04/12 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
微信红包随机生成算法php版
2016/07/21 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
js代码实现随机颜色的小方块
2015/07/30 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
python利用sklearn包编写决策树源代码
2017/12/21 Python
详解Python绘图Turtle库
2019/10/12 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
出纳试用期自我鉴定
2014/04/07 职场文书
个人主要事迹材料
2014/08/26 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python