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文件两种读取方式相关推荐

  1. JSON的两种解析方式

    JSON的两种解析方式:Gson和Fastjson,下面来看下这两种解析方法怎样使用,并且他们有哪些区别. 1.Gson: Gson是谷歌的一款JSON解析工具. 功能①:将对象转化为JSON字符串 ...

  2. PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式

    PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式 文章目录 PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式 1.前言 2.方式一:另建 py ...

  3. SpringBoot的properties和yml两种配置方式, 配置注入参数, 以及配置文件读取失效的问题

    SpringBoot支持两种配置方式,一种是properties文件,一种是yml 首先在pom文件中添加依赖: <dependency><groupId>org.spring ...

  4. android中资源文件的两种访问方式,Android_Android学习笔记-保存文件(Saving Files),Android设备有两种文件存储区域 - phpStudy...

    Android学习笔记-保存文件(Saving Files) Android设备有两种文件存储区域: 内部存储和外部存储 ("internal" and "externa ...

  5. 简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?

    简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么? 参考答案: (1)ftp有两种登录方式:匿名登录和授权登录.使用匿名登录时,用户名为:anonymous ...

  6. Windows校验文件哈希hash的两种常用方式

    大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像 ...

  7. SpringBoot文件访问映射的两种实现方式

    SpringBoot文件访问映射的两种实现方式 业务需求:通过SpringBoot访问服务器(磁盘内)的所有文件,用于正常项目中上传图片(文件)的访问. 图片路径:E://images/upload/ ...

  8. linux下如何解压iso文件怎么打开方式,ISO文件如何打开 ISO文件的两种打开方式【详解】...

    ISO文件如何打开? 我们下载的大部分LINUX安装文件都是iso格式,下载到本地后双击会被WINRAR打开,许多人把它当成了压缩包,这是不正确的,ISO文件通过一些手段不需要解压就可以直接硬盘安装. ...

  9. 探究Redis两种持久化方式下的数据恢复

    对长期奋战在一线的后端开发人员来说,都知道redis有两种持久化方式RDB和AOF,虽说大家都知道这两种方式大概运作方式,但想必有实操的人不会太多. 这里是自己实操两种持久化方式的一点点记录. 先看以 ...

最新文章

  1. 【组队学习】【33期】数据可视化(Matplotlib)
  2. 【MATLAB】进阶绘图 ( Boxplot 箱线图 | boxplot 函数 | Error Bar 误差条线图 | errorbar 函数 )
  3. SVN更新后显示的U与G是什么意思?
  4. 5分绩点转4分_作为一名大学生,如何规划4年大学生活?学姐:建议从这5点做起...
  5. python tkinter 弹窗_Python:tkinter-Parent获取弹出窗口的返回值
  6. fetchtype 动态控制_hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法
  7. python中国官网-Python教程
  8. 控制台修改应用端口_应用架构六边型架构:三个原则和一个实现示例
  9. 马歇尔·卢森堡《非暴力沟通》——备忘
  10. python实现搜狗新闻挖掘(一)
  11. Shell的解释和一些用法
  12. 弘辽科技:胡润研究院发布《2020胡润中国10强电商》榜单,第二名很意外
  13. AE模板自媒体频道订阅点赞模板网络视频点赞订阅图形动画
  14. 美团网创始人王兴专访:我现在的事业十分和谐
  15. 感时花溅泪,恨别鸟惊心
  16. 老电脑安装XP时遇到问题的总结
  17. 使用layui做二级菜单,选父级必选子级
  18. Excel的Python开发插件-- 完全替代陈旧的VBA
  19. android家长控制软件,三款家长控制软件,你猜家长更爱谁?
  20. 360搜索用上了so.com域名

热门文章

  1. 最小二乘法多项式曲线拟合原理与实现(错误地方已经修改底层补充自己写的java实现)
  2. C语言 将一串数字,一个一个输出
  3. 企业绩效管理的三大难点
  4. 请不要说技术不是问题
  5. 德国公司注册优势 德国注册公司流程 海外公司设立
  6. FTP 主动模式、被动模式
  7. 纯 js 实现跨域接口调用 jsonp
  8. 【徐禾 政治经济学概论】 读书笔记 §1.2商品的二因素:使用价值和价值
  9. 【知识图谱】国内知识图谱应用概述
  10. 《SPRING技术内幕:深入解析SPRING架构与设计原理(第2版)》