当前位置: 首页 > article >正文

字典和 JSON 文本的格式区别

1. 数据类型

  • 字典:是 Python 中的一种内置数据类型,用于存储键值对,语法类似于 JSON,但并不是严格的文本格式。
  • JSON:是一种轻量级的数据交换格式,用于跨语言、跨平台传输和存储数据,完全以字符串形式表示。

2. 表示形式

字典(Python 格式):
  • 使用单引号 ' 或双引号 " 包裹键和值。
  • 键可以是字符串、整数、浮点数等(不强制为字符串)。
  • 值可以是 Python 支持的多种类型(字符串、整数、浮点数、列表、布尔值、对象等)。

示例:Python 字典

data_dict = {
    'name': 'Alice',
    'age': 25,
    'is_student': False,
    'grades': [90, 80, 85],
    'address': {
        'city': 'New York',
        'zip': 10001
    }
}

JSON(严格格式):
  • JSON 的键必须是 字符串,用双引号 " 包裹。
  • 值必须是以下几种类型:字符串数字布尔值truefalse)、数组(列表)、对象(字典)或 null
  • JSON 是纯文本数据,通常用于数据交换。

示例:JSON 文本

{
    "name": "Alice",
    "age": 25,
    "is_student": false,
    "grades": [90, 80, 85],
    "address": {
        "city": "New York",
        "zip": 10001
    }
}

3. 数据用途

  • 字典
    • 用于 Python 内部数据操作和存储,便于程序逻辑处理。
    • 不能直接用于跨平台或跨语言数据传输。
  • JSON
    • 是一种标准化的文本格式,常用于 Web 应用、API 通信和跨语言数据交换。
    • 可以存储和传输更广泛的类型系统数据。

4. 与代码的交互

  • 字典:可以直接用 Python 操作(如添加、删除键值对),不需要额外处理。
  • JSON:需要通过 Python 的 json 模块解析(json.loads 将 JSON 转为字典)或生成(json.dumps 将字典转为 JSON)。

转换示例:字典 ↔ JSON

import json

# Python 字典
data_dict = {
    'name': 'Alice',
    'age': 25,
    'is_student': False
}

# 转为 JSON 格式
json_text = json.dumps(data_dict, indent=4)
print(json_text)
# 输出:
# {
#     "name": "Alice",
#     "age": 25,
#     "is_student": false
# }

# JSON 转为字典
data_from_json = json.loads(json_text)
print(data_from_json)
# 输出: {'name': 'Alice', 'age': 25, 'is_student': False}

5. 格式上的严格性

  • 字典:更灵活,允许键不是字符串,允许值为任何 Python 对象。
  • JSON:更严格,键必须是字符串,值的类型受限制,布尔值必须是 truefalse,不区分大小写。

6. 用途

字典JSON
Python 内部数据结构数据交换格式
只能在 Python 内部使用跨语言、跨平台传输
动态数据处理存储和传输静态结构化数据

总结

  • 字典 是一种 Python 的数据类型,适合在程序中处理和操作数据。
  • JSON 是一种严格的、跨平台的文本格式,适合存储和传输数据。
    两者可以通过 Python 的 json 模块相互转换。

http://www.kler.cn/a/505735.html

相关文章:

  • Go语言中http.Transport的Keep-Alive配置与性能优化方法
  • Deep4SNet: deep learning for fake speech classification
  • 【Linux】常见指令(一)
  • Sprint Boot教程之五十八:动态启动/停止 Kafka 监听器
  • 蓝桥与力扣刷题(709 转换成小写字母)
  • 计算机网络之---应用层协议概述
  • 【漫话机器学习系列】044.热点对特性的影响(Effect Of One Hot On Feature Importance)
  • Rust 正则表达式完全指南
  • zerox - 使用视觉模型将 PDF 转换为 Markdown
  • 机器学习中的凸函数和梯度下降法
  • 海康MV-EB435i立体相机SDK安装(ROS 2)
  • 瑞芯微 RK 系列 RK3588 使用 ffmpeg-rockchip 实现 MPP 视频硬件编解码-代码版
  • 设计模式学习手册(四)(原型模式)
  • C++—17、C++ 中的类和结构体的区别
  • 《计算机网络》课后探研题书面报告_了解PPPoE协议
  • 基于Springboot: 宠物小程序开发笔记(上)
  • Unity2017 控制.abc格式的三维动画播放
  • Kylin Linux V10 替换安装源,并在服务器上启用 EPEL 仓库
  • Python 替换excel 单元格内容
  • Pyinstaller打包
  • Python与Excel:开启自动化办公新时代
  • AudioGPT全新的 音频内容理解与生成系统
  • 深入理解 MySQL 中 FIND_IN_SET 函数在查询中的应用
  • 美化IDE之修改IDEA启动界面logo图片
  • laravel中请求失败重试的扩展--Guzzle
  • 【Hive】海量数据存储利器之Hive库原理初探