【精简版】一文辨析 json 和 jsonl

目录

目录

一、简介

二、基本结构

三、对象Object 和 数组Array 的json格式

四、特点

五、应用范围

六、json常用函数

json.dumps() 和 json.dump()

json.loads() 和 json.load()

七、jsonl常用函数 

八、json和jsonl的区别
​​​​​​​


一、简介

JSON(JavaScript Object Notation)

  • 一种轻量级的数据交换格式。
  • 文本表示数据对象的属性和值对
  • JSON格式源于JavaScript语言,但独立于编程语言,几乎在所有编程环境中都能使用。
  • 广泛用于数据传输。

二、基本结构

json的基本结构:可以是字符串(String)、数字(Number)、对象(Object)、数组(Array)、布尔值(Boolean)或 null

{
  "String": "Hello, World!",
  "Number": 123,
  "Object": {"key": "value"},
  "Array": [1, 2, 3],
  "Boolean": true,
  "null": null
}

三、对象Object 和 数组Array 的json格式

1️⃣ json格式:对象(Object)

{
  "name": "John",
  "age": 30,
  "city": "New York"
}
  • 由花括号 {} 包围,包含键值对
  • 键和值之间用冒号 : 分隔,
  • 键值对之间用逗号 , 分隔。

2️⃣ json格式:数组(Array)

[
  "Apple",
  "Banana",
  "Cherry"
]
  • 由方括号 [] 包围
  • 包含一组值
  • 值之间用逗号 , 分隔。

四、特点

  • 简单易读:结构清晰,易于理解和编写。
  • 轻量级:格式简洁,数据传输效率高。
  • 独立性:语言无关,适用于多种编程语言和平台。

五、应用范围

JSON常用于Web应用的数据交换、配置文件、数据存储和传输等场景中被广泛使用

例如服务器与客户端之间传递数据。


六、json常用函数

json.dumps() 和 json.dump()

json.dumps(obj):python对象序列化为JSON格式的字符串

json.dump(obj, fp) :将 Python 对象 obj 转换为 JSON 格式,并写入到文件 fp

import json

data = {
    "name": "Alice",
    "age": 30,
    "is_student": False
}

json_string = json.dumps(data)
print(json_string)

#写入到文件 fp
with open('data.json', 'w') as file:
    json.dump(data, file)

输出结果:  {"name": "Alice", "age": 30, "is_student": false}

json.loads() 和 json.load()

 json.loads(obj):将 JSON 格式的字符串反序列化为 Python 对象

json.load(fp): 从文件中读取 JSON 数据,并将其解析为 Python 对象

import json

json_string = '{"name": "Alice", "age": 30, "is_student": false}'
data = json.loads(json_string)
print(data)


#从文件中读取 JSON 数据
with open('data.json', 'r') as file:
    data = json.load(file)
    print(data)

 输出结果 :  {'name': 'Alice', 'age': 30, 'is_student': False}

七、jsonl常用函数 

1️⃣ 读取 JSONL 文件

import jsonlines

with jsonlines.open('data.jsonl', mode='r') as reader:
    for obj in reader:
        print(obj)

2️⃣ 写入 JSONL 文件

import jsonlines

data = [
    {"name": "Alice", "age": 30, "city": "New York"},
    {"name": "Bob", "age": 25, "city": "Los Angeles"},
    {"name": "Charlie", "age": 35, "city": "Chicago"}
]

with jsonlines.open('data.jsonl', mode='w') as writer:
    writer.write_all(data)

八、json和jsonl的区别

📝 JSON 是一种广泛使用的数据交换格式,适用于存储和传输结构化数据。

📝 JSONL 是 JSON 的一种变体,每行是一个独立的 JSON 对象,适用于处理大型数据文件。

✅ json.dump 和 json.load 用于文件的 JSON 读写

✅ json.dumps 和 json.loads 用于字符串的 JSON 处理。

🌈 jsonlines 库用于处理 JSONL 格式的数据。

### JSON JSON Lines (JSONL) 格式的转换 在 Python 中,可以利用 `json` 库来处理标准的 JSON 文件。对于 JSON Lines (JSONL),这是一种每行包含独立有效 JSON 对象的纯文本文件格式。 #### 将 JSON 转换为 JSONL 为了将常规 JSON 数据转成 JSONL 格式,先加载整个 JSON 结构到内存中的列表或其他可迭代对象里,之后遍历这个结构并逐行写入每一个条目作为单独的有效 JSON 字符串至目标文件中: ```python import json data = [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}] # 假设这是读取自某 JSON 文件的数据 with open('output.jsonl', 'w') as f: for item in data: f.write(json.dumps(item) + '\n') ``` 这段代码会创建一个新的名为 `output.jsonl` 的文件,在其中每一行都是原始数据集中的一项记录表示为有效的 JSON 文本[^1]。 #### 将 JSONL 转换回 JSON 要反向操作即将 JSONL 文件的内容重新组合成为一个单一的大括号包裹的对象形式保存下来,则需依次解析各行并将它们累积起来形成最终的结果集再一次性写出: ```python import json result = [] with open('input.jsonl', 'r') as f: for line in f: result.append(json.loads(line.strip())) with open('output.json', 'w') as outfile: json.dump(result, outfile) ``` 此脚本打开指定路径下的 `.jsonl` 文件按行读取其内容并通过 `json.loads()` 方法将其转化为 Python 字典追加进结果列表;最后把该列表整体序列化后存入新的 JSON 文件当中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值