python 关于如何把json文件里面的多条数据删除,只保留自己需要的条目
参考博客:
https://www.cnblogs.com/bigberg/p/6430095.html
https://zhidao.baidu.com/question/717320833852811685.html
如何把json1文件中的部分满足条件的条目提取出来?也就是删除自己不需要的条目。
我使用的是一个最笨拙的方法,就是把json1文件中的数据一条条json行转化为字典进行查看,如果满足条件则另存成一个json2文件里面。
1、加载json库:
import json
2、打开json1文件用于读取:
aminerFile = open(r'...\json1.txt','r')
3、打开json2文件用于写入:
with open(r'...\json2.txt','w') as jsonFile:
4、按行读取json1文件:
for jsonLine in aminerFile:
5、字符串格式转化成字典格式:
lwPythonLine = json.loads(jsonLine)
6、判断当前行是否满足我们所要求的条件(我这边是判断当前行中是否有’r‘属性,且’r‘值的长度不能低于20维则保存,其他的丢弃):
if ('r' in lwPythonLine) and len(lwPythonLine['r']) >= 20:
7、如果满足条件则将当前行写入到json2文件中,同时随后在json2文件中插入换行符,是的json数据一条一条的存放,而不是一个大段:
json.dump(lwPythonLine, jsonFile)
8 jsonFile.write('\n')
就完成了,代码全部为:
import json
aminerFile = open(r'...\json1.txt','r')
with open(r'...\json2.txt','w') as jsonFile:
for jsonLine in aminerFile:
lwPythonLine = json.loads(jsonLine)
if ('r' in lwPythonLine) and len(lwPythonLine['r']) >= 20:
json.dump(lwPythonLine, jsonFile)
jsonFile.write('\n')
热烈欢迎批评指正!
python 关于如何把json文件里面的多条数据删除,只保留自己需要的条目的更多相关文章
- Python中yaml和json文件的读取和应用
Python对yaml和json文件的读取: yaml文件读取: 首先创建一个yaml文件test.yaml import yaml #引入包 f=open(path) #建立Python的文件 ...
- 一文综述python读写csv xml json文件各种骚操作
Python优越的灵活性和易用性使其成为最受欢迎的编程语言之一,尤其是对数据科学家而言.这在很大程度上是因为使用Python处理大型数据集是很简单的一件事情. 如今,每家科技公司都在制定数据战略. ...
- python 读空的json文件
读空的json文件,python2和python3 的错误提示是不一样的 python2: ValueError: No JSON object could be decoded python3: j ...
- 使用json文件给es中导入数据
使用json文件可以给es中导入数据,10万条左右的数据可以一次导入,数量太大时导入就会报错.大数量的到导入还是需要用bulk方式. accounts.json文件格式如下: {"index ...
- python字典保存至json文件
import os import json class SaveJson(object): def save_file(self, path, item): # 先将字典对象转化为可写入文本的字符串 ...
- Python学习笔记:json模块和pickle模块(数据序列化)
Python中的json模块和pickle都是用于数据的序列化和反序列化,它们提供的方法也是一样的:dumps,dump,loads,load dumps(obj):将对象序列化为str. dump( ...
- 解决Python自带的json不能序列化data,datetime类型数据问题
官方文档中的一个Demo: >>> import json >>> class ComplexEncoder(json.JSONEncoder): ... def ...
- Python开发【笔记】:pymsyql 插入一条数据同时获取新插数据的自增id的两种方式
一.通过cursor.lastrowid import pymysql.cursors # Connect to the database connection = pymysql.connect(h ...
- 160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件
上次发表过的一遍删除重复记录的文章,其中最优的方案三删除1w条也花了0.07秒而2w条就已经花掉了4秒.今天进行了进一步优化,测试删除10w条只花了1.06秒.速度提升了很多. 建表语句 CREATE ...
随机推荐
- 高斯消元+期望dp——light1151
高斯消元弄了半天没弄对.. #include<bits/stdc++.h> using namespace std; #define maxn 205 #define eps 1e-8 d ...
- React中的this.props.children
React this.props.children this.props对象的属性与组件的属性一一对应,但是有一个例外,就是this.props.children属性.它表示组件的所有子节点. var ...
- Python高质量缩放切图,抗锯齿
最近刚接触Python,以迅雷不及掩耳盗铃之势(只是迫不及待)应用到工作中去了之前用 cmd+photoshop做批量图像处理(缩放切片),在执行效率(速度)上和灵活度上有很大限制,遂转战Python ...
- 大数据、AI“武装”企业服务:风控、检索、安全
大数据.AI“武装”企业服务:风控.检索.安全 小饭桌创业课堂2017-05-06 15:26:42阅读(127)评论(0) + - 文|吴杨可月 - - 小饭桌创业研究院出品 - 两件秘闻,将美国大 ...
- 汇编语言LAHF和SAHF指令
LAHF(加载状态标志位到 AH)指令将 EFLAGS 寄存器的低字节复制到 AH.被复制的标志位包括:符号标志位.零标志位.辅助进位标志位.奇偶标志位和进位标志位.使用这条指令,可以方便地把标志位副 ...
- 05.Hibernate常用的接口和类---Configuration类和作用
Configuration作用: 加载Hibernate配置文件,可以获取SessionFactory对象 加载方式: 1.加载配置文件 Configuration configuration = n ...
- 【python之路45】tornado的用法 (三)
参考:https://www.cnblogs.com/sunshuhai/articles/6253815.html 一.cookie用法补充 1.cookie的应用场景 浏览器端保存的键值对,每次访 ...
- javascript的Touch事件
js的touch事件,一般用于移动端的触屏滑动 $(function(){document.addEventListener("touchmove", _touch, false) ...
- substring() 方法用于提取字符串中介于两个指定下标之间的字符。
substring() 方法用于提取字符串中介于两个指定下标之间的字符. 语法 stringObject.substring(start,stop) 参数 描述 start 必需.一个非负的整数,规定 ...
- spring cloud深入学习(八)-----配置中心svn示例和refresh
svn版本 同样先示例server端的代码,基本步骤一样. 1.添加依赖 <dependencies> <dependency> <groupId>org.spri ...