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:
            break
        else:
            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'}]
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C JSON文件读写是指使用C语言编程实现对JSON格式文件读取和写入操作。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序中传输和存储数据。 在C语言中,我们可以使用第三方库,如cJSON库来进行JSON文件的读写操作。首先,我们需要通过该库的函数将JSON文件加载到内存中,可以使用cJSON_ParseFile函数来实现这一步骤。该函数会返回一个cJSON对象,表示JSON文件中的数据结构。 读取JSON文件后,我们可以使用cJSON_GetObjectItem函数来获取JSON对象中的具体字段值。该函数接受两个参数,第一个参数是表示JSON对象的cJSON对象,第二个参数是字段名,返回该字段对应的值。通过不断调用该函数,我们便可以获取到JSON文件中的所有字段值。 在对JSON文件进行写入操作时,我们需要先创建一个空的cJSON对象,使用cJSON_CreateObject函数来创建。然后,使用cJSON_AddItemToObject函数,将字段和值逐个添加到cJSON对象中。最后,使用cJSON_Print函数将cJSON对象转换为字符串,并将字符串写入到文件中。 总结一下,C JSON文件的读写操作需要使用第三方库cJSON,通过函数cJSON_ParseFile读取JSON文件、使用cJSON_GetObjectItem获取字段值、创建cJSON对象、使用cJSON_AddItemToObject添加字段和值、使用cJSON_Print将cJSON对象转换为字符串,并使用文件操作函数将字符串写入到文件中。这样就实现了C语言中对JSON文件的读写操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值