python中json、字典的区别以及相互转换方法

 更新时间:2023年11月02日 09:09:36   作者:一位代码  
在Python中我们经常会用到JSON格式的数据,而将JSON格式转化为Python的字典类型是一种常见的操作,这篇文章主要给大家介绍了关于python中json、字典的区别以及相互转换方法的相关资料,需要的朋友可以参考下

前言

json,是一种轻量级的数据交换格式,由JavaScript语言创建,广泛应用于网页数据交互,常见于爬虫和数据分析领域。

json格式简洁、结构清晰,存储格式为:键值对(key:value)

在python中,字典(dict)与json非常相似,都是键值对(key:value)形式。

一、 json与字典的区别

json与字典的区别,如下表:

json格式dict(字典,python)
一种数据格式,纯字符串。可以被解析成python的字典(dict)形式或其他形式。一种数据结构
key只能是字符串key可以是python中任意不可变数据:字符串、数值、元组等
key可以是有序、重复的key不能重复
字符串只能使用双引号字符串可以用单引号、双引号、三引号
任意key存在默认值undefined任意key没有默认值
json:true、false、null、stringdict:Ture、False、None、str
json中文是unicode编码,如,“\u6211”

二、json与字典相互转换

首先,创建一个字典(a_dict),作为举例。

a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
print(type(a_dict))
print(a_dict)

(一)将字典转化为json格式数据

json.dumps():将python数据类型转换成json字符串,dict→json

语法:

json.dumps(obj,ensure_ascii=True,indent=None,encoding=“utf8”,sort_keys=False,separators=None…)

常用参数释义
ensure_ascii默认为True,中文编码为unicode;改成False,则可以输出中文汉字。
indent默认为None,参数根据格式缩进显示,表示缩进几个空格,接收int类型数值。
sort_keys默认为False,不按字典的key排序;改成True,按照字典的key排序
separators指定分隔符,默认为None;包含dict每个元素间分隔符(逗号“,”),key与value之间的分隔符(冒号“:”),指定分隔符后,原来的分隔符则直接去掉
encoding编码,默认utf-8

将字典a_dict,转换为json格式数据,代码如下:

# 将字典a_dict转换为json
import json
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
a_json = json.dumps(a_dict)
print(type(a_json))
print(a_json)

注:字典a_dict,转换为json数据a_json后,有以下几点变化:

(1)数据类型由字典dict变成str

(2)a_dict中的单引号、三单引号全部统一为双引号

(3)中文“您好”转换为unicode编码“\u60a8\u597d”。

如果想要正常显示中文,可以加入参数:ensure_ascii=False,代码变为:

# 将字典a_dict转换为json
import json
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
a_json = json.dumps(a_dict, ensure_ascii=False)
print(type(a_json))
print(a_json)

(4)如果数据很多,直接一排一排这样显示,很难看清结构。加入参数:indent=缩进空格数,可以美观清晰的输出,代码如:

import json

a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
a_json = json.dumps(a_dict, ensure_ascii=False, indent=2)  # 缩进2个空格
print(type(a_json))
print(a_json)

(二)将json格式数据转换为字典

json.loads():将json字符串解析成python数据类型,json→dict

将a_json转换为字典格式数据,如下:

b_dict = json.loads(a_json)
print(type(b_dict))
print(b_dict)

以上就是python中,json与字典数据格式之间的区别,及相互转换方法,可供参考。

总结

到此这篇关于python中json、字典的区别以及相互转换方法的文章就介绍到这了,更多相关python json和字典相互转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现凯撒密码

    python实现凯撒密码

    这篇文章主要为大家详细介绍了python实现凯撒密码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!

    端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!

    端午节快要到了,旅游?回家?拜访亲友?少不了要带上粽子.那么:选择什么牌子的粽子呢?选择什么口味的粽子呢?选择什么价格区间呢?今天爬取了京东上面的 “粽子数据” 进行分析,看看有啥发现吧!,需要的朋友可以参考下
    2021-06-06
  • Python pexpect模块及shell脚本except原理解析

    Python pexpect模块及shell脚本except原理解析

    这篇文章主要介绍了Python pexpect模块及shell脚本except原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • python读取excel数据并且画图的实现示例

    python读取excel数据并且画图的实现示例

    这篇文章主要介绍了python读取excel数据并且画图的实现示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-02-02
  • pandas针对excel处理的实现

    pandas针对excel处理的实现

    这篇文章主要介绍了pandas针对excel处理的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python pytest进阶之xunit fixture详解

    python pytest进阶之xunit fixture详解

    这篇文章主要介绍了python pytest进阶之xunit fixture详解,了解unittest的同学应该知道我们在初始化环境和销毁工作时,unittest使用的是setUp,tearDown方法,那么在pytest框架中同样存在类似的方法,今天我们就来具体说明,需要的朋友可以参考下
    2019-06-06
  • Pycharm创建项目时如何自动添加头部信息

    Pycharm创建项目时如何自动添加头部信息

    这篇文章主要介绍了Pycharm创建项目时 自动添加头部信息,需要的朋友可以参考下
    2019-11-11
  • Python的Django框架使用入门指引

    Python的Django框架使用入门指引

    这篇文章主要介绍了Python的Django框架使用入门指引,本文来自于IBM官方网站技术文档,需要的朋友可以参考下
    2015-04-04
  • 浅谈PySpark SQL 相关知识介绍

    浅谈PySpark SQL 相关知识介绍

    这篇文章主要介绍了浅谈PySpark SQL 相关知识介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python上下文管理器全实例详解

    Python上下文管理器全实例详解

    在本篇文章里小编给大家整理的是关于Python上下文管理器全实例解析的知识点,需要的朋友们参考下。
    2019-11-11

最新评论