Python 将 JSON 字符串转换为字典

在 Python 中,将 JSON 字符串转换为字典非常简单,使用内置的 json 模块即可。

基本方法

python 复制代码
import json

# JSON 字符串
json_str = '{"name": "张三", "age": 25, "city": "北京"}'

# 转换为字典
data_dict = json.loads(json_str)

print(data_dict)
print(type(data_dict))  # <class 'dict'>
print(data_dict['name'])  # 张三

完整示例

python 复制代码
import json

# 示例 JSON 字符串
json_string = '''
{
    "name": "李四",
    "age": 30,
    "hobbies": ["阅读", "游泳", "编程"],
    "address": {
        "street": "中山路123号",
        "city": "上海"
    },
    "is_student": false
}
'''

# 转换为字典
data = json.loads(json_string)

# 访问数据
print(f"姓名: {data['name']}")
print(f"年龄: {data['age']}")
print(f"爱好: {data['hobbies']}")
print(f"城市: {data['address']['city']}")
print(f"是否学生: {data['is_student']}")

# 遍历字典
for key, value in data.items():
    print(f"{key}: {value}")

处理异常

python 复制代码
import json

json_str = '{"name": "王五", "age": 28'  # 缺少闭合括号,无效JSON

try:
    data = json.loads(json_str)
    print("转换成功:", data)
except json.JSONDecodeError as e:
    print(f"JSON解析错误: {e}")
    print(f"错误位置: 行 {e.lineno}, 列 {e.colno}")

从文件读取 JSON

python 复制代码
import json

# 从文件读取 JSON
with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)  # 注意是 load() 不是 loads()
    
print(data)

注意事项

  1. JSON 格式要求

    • 键名必须用双引号 " 包裹(单引号会报错)
    • 字符串值必须用双引号
    • 布尔值用 true/false(Python 中是 True/False
    • 空值用 null(Python 中是 None
  2. loads() vs load()

    • json.loads(): 从字符串解析
    • json.load(): 从文件对象解析
  3. 中文处理

    python 复制代码
    # 确保正确处理中文
    json_str = '{"name": "张三"}'
    data = json.loads(json_str)
    print(data['name'])  # 正常显示中文
    
    # 输出时保持中文
    print(json.dumps(data, ensure_ascii=False))  # {"name": "张三"}

反向操作:字典转 JSON 字符串

python 复制代码
import json

data = {
    "name": "赵六",
    "age": 35,
    "city": "广州"
}

# 转换为 JSON 字符串
json_str = json.dumps(data, ensure_ascii=False, indent=2)
print(json_str)

这样就可以轻松地在 JSON 字符串和 Python 字典之间进行转换了!

相关推荐
JeffongTan5 小时前
在LWC中镶嵌VF Page获取用户IP
前端·javascript·salesforce
2601_962293246 小时前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
2601_962293797 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
陆枫Larry8 小时前
Astro 是什么
前端
Java后端的Ai之路8 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
2601_962077719 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
是立不是利9 小时前
写给设计师的 CSS 博客美学指南
前端·css
JavaPub-rodert9 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
郝学胜-神的一滴9 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
默_笙10 小时前
🏝 Docker 就是"房地产开发":从施工图纸到小区物业的容器化指南
前端·javascript