【记录】Python3|json文件处理相关的操作
json分割
主要使用json.loads、json.dump。
import json
# 把path文件分割成num个,并存入path2中
# path: 文件路径 path2 : 目标路径 num: 结果的数量
def jsonSplit(path, path2, num):
count = 0
for count, line in enumerate(open(path, 'rU', encoding='utf-8')):
pass
count += 1
nums = [(count * i // num) for i in range(1, num + 1)]
current_lines = 0
data_list = []
# 打开大文件,拆成小文件
with open(path, 'r', encoding='utf-8') as file:
i = 0
for line in file:
# line = line.replace('},','}')
data_list.append(json.loads(line))
current_lines += 1
if current_lines in nums:
# print(current_lines)
# 保存文件
file_name = path2 + str(current_lines) + '.json'
with open(file_name, 'w', encoding='utf-8') as f:
# print(len(data_list))
data = json.dumps(data_list)
f.write(data)
data_list = []
data = []
json.gz 转换成 jsonl.gz
主要使用gzip、jsonlines。
import os
import gzip
import jsonlines
import json
# 把path对应的json.gz文件,转化成jsonlines文件,再压缩成jsonl.gz文件
# path:数据集的路径 path2:结果路径
def jsonTojsonlGZ(path, path2):
with gzip.open(path, 'rt') as pf:
# 加载json
data = pf.read()
all_data = json.loads(data)
# 打开jsonl并写入
filename = path2 + '.jsonl'
with jsonlines.open(filename, mode='a') as writer:
for item in all_data:
writer.write(item)
# 打开jsonl.gz并写入jsonl文件的内容
f_gzip = gzip.GzipFile(filename + '.gz', "wb")
with open(filename, 'rb') as f_in:
f_gzip.write(f_in.read())
# 删除jsonl文件
os.remove(filename)
json格式化显示
import json
dic = {'a': 1, 'b': 2, 'c': 3}
js = json.dumps(dic)
print(js)
遍历目录及子目录,对某种类型的文件内容查找是否有指定字符串
# coding:utf-8
import re
import os
import gzip
import sys
file_behind=sys.argv[1]
dirname=sys.argv[2]
tofind=sys.argv[3]
def searchInDir(dirname):
for root,dirs,files in os.walk(dirname):
for dir in dirs:
searchInDir(dir)
for filename in files:
if(os.path.splitext(filename)[1]!=file_behind):
continue
file=os.path.join(root,filename)
if(file_behind==".gz"):
with gzip.open(file,"rt",encoding='utf-8') as f:
content = f.read()
print(file, re.findall(tofind,content))
else:
with open(file,"rt",encoding='utf-8') as f:
content = f.read()
print(file, re.findall(tofind,content))
searchInDir(dirname)
效果:

【记录】Python3|json文件处理相关的操作的更多相关文章
- 访问本地json文件因跨域导致的问题
我使用jquery的getJSON的方法获取本地的json文件,并进行操作,获取json 数据代码如下: $.getJSON("invite_panel.json",functio ...
- java如何读写json文件
在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml.json等)也是一种实现方式,但是这有一个弊端 ...
- Python3之json文件操作
json函数 使用json函数之前,首先需要导入json模块,import json 1).json.dumps()函数 该函数是将 Python 对象编码成 JSON 字符串,例如: import ...
- 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的生命周期和程序的生命周期
[源码下载] 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的 ...
- linux 操作 json文件
Linux 下 操作 json 文件神器 jq. jq yum install jq -y 查看一个 file.json 文件 # jq . file.json JSON (JavaScript O ...
- Oracle 参数文件及相关操作介绍
Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...
- mysql 5.7 laravel json类型数据相关操作
2018年10月16日18:14:21 官方文档中文翻译版 原文:https://dev.mysql.com/doc/refman/5.7/en/json.html 最后有部分实例和一个小总结 11. ...
- Python3编写网络爬虫09-数据存储方式二-JSON文件存储
2.JSON文件存储 全称为JavaScript Object Notation 通过对象和数组的组合来表示数据,构造简洁且结构化程度非常高.是一种轻量级的数据交换格式 2.1 对象和数组 在Java ...
- 关于C#资源文件的相关操作
关于资源文件的相关操作. //1.比较常见的有获取资源文件对应的文件流,然后转换到相对应的文件 //比较典型的做法是通过代码程序集加载指定资源 //如下通过Assembly的静态方法GetExecut ...
- java文件夹相关操作 演示样例代码
java文件夹相关操作 演示样例代码 package org.rui.io; import java.io.File; import java.io.FilenameFilter; import ja ...
随机推荐
- 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
在人工智能飞速发展的今天,大语言模型的应用越来越广泛.DeepSeek 作为近期爆火的一款大语言模型,受到了众多开发者的青睐. 今天这篇内容,就来聊聊,如何在本地自己的电脑上部署DeepSeek. 1 ...
- RabbitMQ(三)——简单模式
RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...
- ABB机器人IRB 6700维修保养技巧
通过与子锐机器人维修保养服务定制合理的机器人保养工作,可以确保ABB机器人IRB 6700的持续稳定运行,延长其使用寿命,为企业的生产提供有力保障. 一.ABB机器人IRB 6700日常检查与维护 外 ...
- 解密prompt系列49. 回顾R1之前的思维链发展路线
在所有人都在谈论R1的今天,作为算法也是有些千头万绪无从抓起.所以这一章先复盘,我先按照自己的思路来梳理下R1之前整个模型思维链的发展过程.下一章再展望主要去看RL在Agent上的一些尝试,毕竟Age ...
- openEuler 24.03 SP1下载clang-18的办法(RISC-V版)
距离openEuler 24.03 SP1发版已经过去了一段时间了,值得注意的是,在这个新的发行版中,可以直接通过命令行下载clang18了!之前的发行版中clang的版本是17,可以直接dnf ...
- Flink学习(十八) 状态管理与状态编程
Flink中的状态 由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态:可以认为状态就是一个本地变量,可以被任务的业务逻辑访问:Flink会进行状态管理,包括状态一致性,故障处理以及 ...
- 我的公众号接入了DeepSeek-R1模型,成为了一个会深度思考的强大.NET AI智能体!
前言 前不久腾讯元器宣布接入满血版 Deepseek R1 模型,模型免费使用且不限量,为智能体开发提供更多样化的模型选择,带来更丰富的智能体功能和玩法. 今天咱们一起来把我公众号的.NET AI智能 ...
- Windows 提权-PrintNightmare
本文通过 Google 翻译 PrintNightmare – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充 ...
- **Selenium IDE、Selenium RC 和 WebDriver 之间有什么区别?**
- Ansible管理密码库文件
ansible可能需要访问密码或API密钥等敏感数据,以便能配置受管主机.通常,此信息可能以纯文本形式存储在清单变量或其他Ansible文件中.但若如此,任何有权访问Ansible文件的用户或存储,这 ...