参考博客:

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文件里面的多条数据删除,只保留自己需要的条目的更多相关文章

  1. Python中yaml和json文件的读取和应用

    Python对yaml和json文件的读取: yaml文件读取: 首先创建一个yaml文件test.yaml import yaml   #引入包 f=open(path)  #建立Python的文件 ...

  2. 一文综述python读写csv xml json文件各种骚操作

      Python优越的灵活性和易用性使其成为最受欢迎的编程语言之一,尤其是对数据科学家而言.这在很大程度上是因为使用Python处理大型数据集是很简单的一件事情. 如今,每家科技公司都在制定数据战略. ...

  3. python 读空的json文件

    读空的json文件,python2和python3 的错误提示是不一样的 python2: ValueError: No JSON object could be decoded python3: j ...

  4. 使用json文件给es中导入数据

    使用json文件可以给es中导入数据,10万条左右的数据可以一次导入,数量太大时导入就会报错.大数量的到导入还是需要用bulk方式. accounts.json文件格式如下: {"index ...

  5. python字典保存至json文件

    import os import json class SaveJson(object): def save_file(self, path, item): # 先将字典对象转化为可写入文本的字符串 ...

  6. Python学习笔记:json模块和pickle模块(数据序列化)

    Python中的json模块和pickle都是用于数据的序列化和反序列化,它们提供的方法也是一样的:dumps,dump,loads,load dumps(obj):将对象序列化为str. dump( ...

  7. 解决Python自带的json不能序列化data,datetime类型数据问题

    官方文档中的一个Demo: >>> import json >>> class ComplexEncoder(json.JSONEncoder): ... def ...

  8. Python开发【笔记】:pymsyql 插入一条数据同时获取新插数据的自增id的两种方式

    一.通过cursor.lastrowid import pymysql.cursors # Connect to the database connection = pymysql.connect(h ...

  9. 160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件

    上次发表过的一遍删除重复记录的文章,其中最优的方案三删除1w条也花了0.07秒而2w条就已经花掉了4秒.今天进行了进一步优化,测试删除10w条只花了1.06秒.速度提升了很多. 建表语句 CREATE ...

随机推荐

  1. 如何在window和mac下查找数据库

    1. mac 下终端使用步骤 cd /Applications/xampp/bin ./mysql -u root 2. window CMD命令中执行步骤 D: cd  D:/xampp/mysql ...

  2. Java-MyBatis-MyBatis3-XML映射文件:缓存

    ylbtech-Java-MyBatis-MyBatis3-XML映射文件:缓存 1.返回顶部 1. 缓存 MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制. 为了使它更 ...

  3. 表单下拉框select

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  4. PAT甲级——A1086 Tree Traversals Again

    An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example ...

  5. js中读取json数据

    1.JSON字符串转为JSON对象 var obj = eval('('+data+')');① var obj = data.praseJSON();② var obj = JSON.prase(d ...

  6. HBase Ambari

  7. Codeforces 486D. Valid Sets

    D. Valid Sets time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. JZOJ5966【NOIP2018提高组D2T3】保卫王国(并查集)

    题目 还是懒得把题目放上来了. 大意:给你一棵带点权的树,你要花费一些代价选择一些点使得相邻的两个点至少有一个被选. 然后有很多个询问,每个询问强制两个点的状态,问强制了这两个点的状态后的方案. 比赛 ...

  9. axios post请求后台接收不到参数 和 一些配置问题

    原因: axios 的 headers的 content-type  默认是 “application/json ”,传给后台的格式是这样的: 但是后台接收数据的格式一般是表单格式的,就是formda ...

  10. python 日记 day3

    数据类型的概况:1.int 用于计算. 2.str 用于存储少量数据. 3.list 用于存储大量数据. 4.元祖 又叫只读列表,元素不可更改. 5. dic 用于存储关系型对象 . 6.集合 A.i ...