基于Python将JSON字符串转换为字典

 更新时间:2026年02月13日 08:21:32   作者:detayun  
本文介绍了如何在Python中使用内置的json模块将JSON字符串转换为字典,处理异常,从文件读取JSON,以及确保JSON格式的正确性,还详细说明了json.loads()和json.load()的区别,并提供了中文处理和字典转JSON字符串的方法,需要的朋友可以参考下

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

基本方法

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'])  # 张三

完整示例

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}")

处理异常

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

import json

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

注意事项

JSON 格式要求

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

loads() vs load()

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

中文处理

# 确保正确处理中文
json_str = '{"name": "张三"}'
data = json.loads(json_str)
print(data['name'])  # 正常显示中文

# 输出时保持中文
print(json.dumps(data, ensure_ascii=False))  # {"name": "张三"}

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

import json

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

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

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

以上就是基于Python将JSON字符串转换为字典的详细内容,更多关于Python JSON转字典的资料请关注脚本之家其它相关文章!

相关文章

  • 零基础写python爬虫之神器正则表达式

    零基础写python爬虫之神器正则表达式

    正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器。正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同。
    2014-11-11
  • Python闭包思想与用法浅析

    Python闭包思想与用法浅析

    这篇文章主要介绍了Python闭包思想与用法,结合实例形式简单分析了Python闭包的概念、原理、使用方法与相关操作注意事项,需要的朋友可以参考下
    2018-12-12
  • 用 Python 制作地球仪的方法

    用 Python 制作地球仪的方法

    这篇文章主要介绍了如何用 Python 制作地球仪,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考即将价值,需要的朋友可以参考下
    2020-04-04
  • python编写接口测试文档(以豆瓣搜索为例)

    python编写接口测试文档(以豆瓣搜索为例)

    接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,这篇文章主要给大家介绍了关于python编写接口测试文档,本文以豆瓣搜索功能为例,需要的朋友可以参考下
    2021-07-07
  • 手把手教你使用Python解决简单的zip文件解压密码

    手把手教你使用Python解决简单的zip文件解压密码

    本文主要介绍了Python解决简单的zip文件解压密码,使用的核心模块是python标准库中的zipfile模块。具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • Python Selenium 之数据驱动测试的实现

    Python Selenium 之数据驱动测试的实现

    这篇文章主要介绍了Python Selenium 之数据驱动测试的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python 把文件中的每一行以数组的元素放入数组中的方法

    python 把文件中的每一行以数组的元素放入数组中的方法

    下面小编就为大家分享一篇python 把文件中的每一行以数组的元素放入数组中的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python中时间datetime的处理与转换用法总结

    Python中时间datetime的处理与转换用法总结

    今天小编就为大家分享一篇关于Python中时间datetime的处理与转换用法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • TensorFlow2基本操作之合并分割与统计

    TensorFlow2基本操作之合并分割与统计

    这篇文章主要介绍了TensorFlow2基本操作之合并分割与统计,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python matplotlib实战之散点图绘制

    Python matplotlib实战之散点图绘制

    散点图,又名点图、散布图、X-Y图,是将所有的数据以点的形式展现在平面直角坐标系上的统计图表,本文主要为大家介绍了如何使用Matplotlib绘制散点图,需要的可以参考下
    2023-08-08

最新评论