网站使用帮助
  • 1、网站复选框、输入框及按钮等,鼠标悬浮片刻会有提示信息,请注意查看
  • 2、格式化结果折叠展开JSON,支持折叠后复制或删除
  • 3、如输入已转义JSON,则自动去除转义并格式化
  • 4、如输入JSON格式有误,则自动尝试修正并格式化
  • 5、如输入DICT,则自动转为JSON并格式化
  • 6、页面右上角有'设置'按钮,支持一些高级设置
  • 7、如您喜欢黑色主题,可在右上角点击'白天'切换
  • 8、如您喜欢多彩导航条,可在右上角点击'换肤'切换
  • 9、如您在使用本站中遇到问题,可点击底部'交流群'反馈
工具介绍

一、什么是 JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于 JavaScript 的一个子集,采用完全独立于语言的文本格式来存储和表示数据。

JSON 具有易于阅读和编写、易于机器解析和生成的特点,是目前互联网上最常用的数据交换格式之一。

JSON 的结构主要由两种数据结构组成:

  • 对象(Object):由键值对组成的无序集合,使用花括号 {} 包裹,键必须是字符串类型,值可以是字符串、数字、布尔值、数组、对象或 null。
  • 数组(Array):由有序的值组成的集合,使用方括号 [] 包裹,数组中的元素可以是字符串、数字、布尔值、数组、对象或 null。

JSON 的语法规则非常简单:

  • 键必须用双引号包裹
  • 字符串值必须用双引号包裹
  • 逗号用于分隔键值对和数组元素

示例:

{
  "name": "张三",
  "age": 25,
  "isStudent": false,
  "hobbies": ["阅读", "编程", "旅行"],
  "address": {
    "city": "北京",
    "district": "朝阳区"
  }
}

二、什么是 Dict(字典)

Dict(字典)是 Python 编程语言中的一种数据结构,也称为关联数组或哈希表。它是一种可变的、无序的键值对集合,其中键必须是不可变的类型(如字符串、数字、元组),值可以是任意类型的对象。

Python 字典具有以下特点:

  • 键必须唯一,不能重复
  • 键必须是不可变的(hashable)
  • 值可以是任意类型
  • 字典是可变的,可以添加、删除、修改键值对
  • 从 Python 3.7 开始,字典保持插入顺序

示例:

person = {
    "name": "张三",
    "age": 25,
    "is_student": False,
    "hobbies": ["阅读", "编程", "旅行"],
    "address": {
        "city": "北京",
        "district": "朝阳区"
    }
}

三、JSON 与 Dict 的转换

在 Python 中,我们经常需要在 JSON 和 Dict 之间进行转换,这可以通过 json 模块来实现:

1. Dict 转 JSON
import json

person = {
    "name": "张三",
    "age": 25,
    "is_student": False,
    "hobbies": ["阅读", "编程", "旅行"]
}

# 将字典转换为 JSON 字符串
json_str = json.dumps(person, ensure_ascii=False, indent=2)
print(json_str)
2. JSON 转 Dict
import json

json_str = '''{
    "name": "张三",
    "age": 25,
    "is_student": false,
    "hobbies": ["阅读", "编程", "旅行"]
}'''

# 将 JSON 字符串转换为字典
person = json.loads(json_str)
print(person["name"])  # 输出: 张三

注意事项:

  • 使用 json.dumps() 时,设置 ensure_ascii=False 可以正确处理中文
  • JSON 中的 null 会被转换为 Python 的 None
  • JSON 中的 true/false 会被转换为 Python 的 True/False
  • JSON 不支持 Python 特有的类型(如 tuple、set、datetime 等),需要自定义编码器