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转换摩斯密码示例
Feb 16 Python
浅谈MySQL中的触发器
May 05 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
30秒轻松实现TensorFlow物体检测
Mar 14 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
使用Python画出小人发射爱心的代码
Nov 23 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
Django REST framework 限流功能的使用
Jun 24 Python
Python创建SQL数据库流程逐步讲解
Sep 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
PHP的开合式多级菜单程序
2006/10/09 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
PHP操作数组相关函数
2011/02/03 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
JS防止用户多次提交的简单代码
2013/08/01 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
原生js获取元素样式的简单方法
2016/08/06 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
Python中的Classes和Metaclasses详解
2015/04/02 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
写给女朋友的检讨书
2014/01/28 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
运动员获奖感言
2014/08/15 职场文书
2014年电厂工作总结
2014/12/04 职场文书
支行行长岗位职责
2015/02/15 职场文书
2019各种承诺书范文
2019/06/24 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server
js 实现验证码输入框示例详解
2022/09/23 Javascript