json文件两种读取方式
json文件两种读取方式
这是一段两个人的对话标注抄本
[{"start_time": {"original": "0:00:00.611000"},"end_time": {"original": "0:00:05.760000"},"words": "+","speaker": "","location": "","session_id": "MDT_F2F_223"},{"start_time": {"original": "0:00:05.760000"},"end_time": {"original": "0:00:09.755000"},"words": "不想上了,你知道吗?我都烦死了","speaker": "SPK506","location": "","session_id": "MDT_F2F_223"},...]
json_file ='/data/magic_data/transcription/train/MDT_F2F_223.json'
cnt = 0
with open(json_file, 'r') as f:lines = f.readlines()print(lines)for line in lines:print(line)if cnt == 3:breakelse:cnt += 1
['[\n', ' {\n', ' "start_time": {\n', ' "original": "0:00:00.611000"\n', ' },\n', ' "end_time": {\n', ' "original": "0:00:05.760000"\n', ' },\n', ' "words": "+",\n', ' "speaker": "",\n', ' "location": "",\n', ' "session_id": "MDT_F2F_223"\n', ' },\n', ' {\n', ' "start_time": {\n', ' "original": "0:00:05.760000"\n', ' },\n', ' "end_time": {\n', ' "original": "0:00:09.755000"\n', ' },\n', ' "words": "不想上了,你知道吗?我都烦死了",\n', ' "speaker": "SPK506",\n', ' "location": "",\n', ' "session_id": "MDT_F2F_223"\n', ' },\n', ' {\n', ' "start_time": {\n', ' "original": "0:00:09.755000"\n', ' },\n', ' "end_time": {\n', ' "original": "0:00:10.376000"\n', ' },\n', ' "words": "[*]",\n', ' "speaker": "",\n', ' "location": "",\n', ' "session_id": "MDT_F2F_223"\n', ' },\n', ' {\n', ' "start_time": {\n', ' "original": "0:00:10.376000"\n', ' },\n', ' "end_time": {\n', ' "original": "0:00:11.995000"\n', ' },\n', ' "words": "诶,那你考研想考哪儿",\n', ' ']']
[{"start_time": {"original": "0:00:00.611000"
这是打印出来效果
原始文件中一行就是list一个item
如何读取json文件
方式1(常用)
import json
json_file ='/data/magic_data/transcription/train/MDT_F2F_223.json'
with open(json_file, 'r') as f:data1 = json.load(f)
用json模块load方法,load的参数是json文件对象
方式2
json_file ='/data/magic_data/transcription/train/MDT_F2F_223.json'
with open(json_file, 'r') as f:lines = f.readlines()json_str = ''.join(lines).replace('\n', '').replace(' ', '').replace(',}', '}')data2 = json.loads(json_str)
lines得到一个字符串列表,列表每一项的值就是json文件中一行,调用json的loads方法,传入的参数是字符串, json_str = ‘’.join(lines)可以简写成这样,不用替换换行和空格字符也行
以上两种读取方式都行,一般习惯用第一种,第二种也比较浪费内存。
返回数据
上面两种方式读取的json文件,返回一个字典列表,其实和打印原json文件长得差不多,打印data2或者data1显示如下
[{'start_time': {'original': '0:00:00.611000'},'end_time': {'original': '0:00:05.760000'},'words': '+','speaker': '','location': '','session_id': 'MDT_F2F_223'},{'start_time': {'original': '0:00:05.760000'},'end_time': {'original': '0:00:09.755000'},'words': '不想上了,你知道吗?我都烦死了','speaker': 'SPK506','location': '','session_id': 'MDT_F2F_223'},{'start_time': {'original': '0:00:09.755000'},'end_time': {'original': '0:00:10.376000'},'words': '[*]','speaker': '','location': '','session_id': 'MDT_F2F_223'}]
json文件两种读取方式相关推荐
- JSON的两种解析方式
JSON的两种解析方式:Gson和Fastjson,下面来看下这两种解析方法怎样使用,并且他们有哪些区别. 1.Gson: Gson是谷歌的一款JSON解析工具. 功能①:将对象转化为JSON字符串 ...
- PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式
PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式 文章目录 PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式 1.前言 2.方式一:另建 py ...
- SpringBoot的properties和yml两种配置方式, 配置注入参数, 以及配置文件读取失效的问题
SpringBoot支持两种配置方式,一种是properties文件,一种是yml 首先在pom文件中添加依赖: <dependency><groupId>org.spring ...
- android中资源文件的两种访问方式,Android_Android学习笔记-保存文件(Saving Files),Android设备有两种文件存储区域 - phpStudy...
Android学习笔记-保存文件(Saving Files) Android设备有两种文件存储区域: 内部存储和外部存储 ("internal" and "externa ...
- 简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么? 参考答案: (1)ftp有两种登录方式:匿名登录和授权登录.使用匿名登录时,用户名为:anonymous ...
- Windows校验文件哈希hash的两种常用方式
大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像 ...
- SpringBoot文件访问映射的两种实现方式
SpringBoot文件访问映射的两种实现方式 业务需求:通过SpringBoot访问服务器(磁盘内)的所有文件,用于正常项目中上传图片(文件)的访问. 图片路径:E://images/upload/ ...
- linux下如何解压iso文件怎么打开方式,ISO文件如何打开 ISO文件的两种打开方式【详解】...
ISO文件如何打开? 我们下载的大部分LINUX安装文件都是iso格式,下载到本地后双击会被WINRAR打开,许多人把它当成了压缩包,这是不正确的,ISO文件通过一些手段不需要解压就可以直接硬盘安装. ...
- 探究Redis两种持久化方式下的数据恢复
对长期奋战在一线的后端开发人员来说,都知道redis有两种持久化方式RDB和AOF,虽说大家都知道这两种方式大概运作方式,但想必有实操的人不会太多. 这里是自己实操两种持久化方式的一点点记录. 先看以 ...
最新文章
- 【组队学习】【33期】数据可视化(Matplotlib)
- 【MATLAB】进阶绘图 ( Boxplot 箱线图 | boxplot 函数 | Error Bar 误差条线图 | errorbar 函数 )
- SVN更新后显示的U与G是什么意思?
- 5分绩点转4分_作为一名大学生,如何规划4年大学生活?学姐:建议从这5点做起...
- python tkinter 弹窗_Python:tkinter-Parent获取弹出窗口的返回值
- fetchtype 动态控制_hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法
- python中国官网-Python教程
- 控制台修改应用端口_应用架构六边型架构:三个原则和一个实现示例
- 马歇尔·卢森堡《非暴力沟通》——备忘
- python实现搜狗新闻挖掘(一)
- Shell的解释和一些用法
- 弘辽科技:胡润研究院发布《2020胡润中国10强电商》榜单,第二名很意外
- AE模板自媒体频道订阅点赞模板网络视频点赞订阅图形动画
- 美团网创始人王兴专访:我现在的事业十分和谐
- 感时花溅泪,恨别鸟惊心
- 老电脑安装XP时遇到问题的总结
- 使用layui做二级菜单,选父级必选子级
- Excel的Python开发插件-- 完全替代陈旧的VBA
- android家长控制软件,三款家长控制软件,你猜家长更爱谁?
- 360搜索用上了so.com域名