json.loads()可将合法json字符串转为python字典,要求键和字符串值用双引号、布尔值为true/false、空值为null;需处理jsondecodeerror异常,并注意bytes需先decode、特殊字符要转义。

直接用 json.loads() 就能把符合 JSON 格式的字符串转成 Python 字典,但要注意字符串必须是合法的 JSON 语法,比如键名得用双引号、不能有单引号或末尾逗号。
确保字符串是标准 JSON 格式
JSON 对语法很严格:键和字符串值都必须用英文双引号包裹,不能用单引号;布尔值是 true/false(小写),不是 True/False;空值是 null,不是 None。
- ✅ 正确:
'{"name": "Alice", "age": 25, "active": true}' - ❌ 错误:
"{'name': 'Alice'}"(单引号)、'{"name": "Alice",}'(末尾逗号)、'{"name": "Alice", "score": None}'(Python 的None不是 JSON)
基础用法:调用 json.loads()
先导入 json 模块,再把字符串传进去,返回的就是字典对象。
仅使用 Python 将 Claw Code 虚拟化框架与 OpenClaw 集成,提供 184 种工具和 200 多条命令,用于安全分析和代码质量...
import json
<p>s = '{"city": "Beijing", "population": 21540000}'
data = json.loads(s)
print(type(data)) # <class>
print(data["city"]) # Beijing
</class></p>
处理常见异常
如果字符串格式不对,json.loads() 会抛出 json.JSONDecodeError。建议用 try...except 捕获,方便定位问题。
import json
<p>s = '{"name": "Tom", "hobby": ["reading", "coding"}' # 缺少 ]
try:
data = json.loads(s)
except json.JSONDecodeError as e:
print(f"解析失败:{e.msg},位置 {e.pos},行 {e.lineno} 列 {e.colno}")</p><h1>输出类似:解析失败:Expecting ',' delimiter,位置 32...</h1><p></p>
注意编码和特殊字符
含中文的字符串一般没问题(Python 3 默认 UTF-8),但如果原始字符串本身是 bytes 类型,需先解码为 str;另外 JSON 中的反斜杠、引号等要正确转义。
- bytes 要先 decode:
json.loads(b'{"msg": "你好"}'.decode("utf-8")) - 带双引号的值要转义:
'{"text": "He said: \"Hello\""}'
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










