文章目录
- JSON 简介
- JSON 语法规则
- JSON 名称/值对
- JSON 值类型
- JSON文件存储
- JSON示例
- 数据示例
- Python解析JSON代码
JSON 简介
- JSON 语法是 JavaScript 语法的子集。
- JSON 是存储和交换文本信息的语法。
- JSON: JavaScript Object Notation(JavaScript 对象表示法)。
JSON 语法规则
- 数据在名称/值对中。
- 数据由逗号分隔。
- 花括号保存对象。
- 方括号保存数组。
JSON 名称/值对
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"name" : "ojbk"
JSON 值类型
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON文件存储
- 文件编码建议UTF-8
- 常用文件扩展名:.json或.jsonc(含注释时)
JSON示例
数据示例
{"user": {"id": "ojbk","profile": {"name": "某某","age": 35,"interests": ["编程", "摄影"]}}
}
Python解析JSON代码
以下是Python解析JSON的常用方法说明:
- 基础解析方法:
import json# 从字符串解析
json_str = '{"name": "Alice", "age": 25}'
data = json.loads(json_str) # 返回字典类型
print(data['name']) # 输出: Alice# 从文件解析
with open('data.json', 'r', encoding='utf-8') as f:file_data = json.load(f)
- 生成JSON:
# 字典转JSON字符串
data_dict = {"city": "北京", "population": 2171}
json_str = json.dumps(data_dict, ensure_ascii=False) # 中文不转义
print(json_str) # 输出: {"city": "北京", "population": 2171}# 写入JSON文件
with open('output.json', 'w', encoding='utf-8') as f:json.dump(data_dict, f, indent=2) # 缩进美化
- 特殊参数说明:
ensure_ascii
: 控制非ASCII字符转义(False显示原文)indent
: 缩进空格数(美化输出)sort_keys
: 按键名排序(默认False)
- 异常处理:
try:data = json.loads(invalid_json_str)
except json.JSONDecodeError as e:print(f"JSON解析错误: {e.msg} (行{e.lineno}列{e.colno})")
- 数据类型对应关系:
JSON类型 | Python类型 |
---|---|
object | dict |
array | list |
string | str |
number | int/float |
true/false | bool |
null | None |
需要解析特定格式的JSON文件或处理复杂嵌套结构时,可以进一步说明需求。