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和字典相互转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pytorch 两个GPU同时训练的解决方案

    pytorch 两个GPU同时训练的解决方案

    这篇文章主要介绍了pytorch 两个GPU同时训练的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Python循环语句之break与continue的用法

    Python循环语句之break与continue的用法

    这篇文章主要介绍了Python循环语句之break与continue的用法,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • python中os.remove()用法及注意事项

    python中os.remove()用法及注意事项

    在本篇内容里小编给大家分享的是一篇关于python中os.remove()用法及注意事项,有需要的朋友们可以跟着学习下。
    2021-01-01
  • 通过实例了解Python异常处理机制底层实现

    通过实例了解Python异常处理机制底层实现

    这篇文章主要介绍了通过实例了解Python异常处理机制底层实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Python常见报错解决之SciPy和NumPy版本冲突

    Python常见报错解决之SciPy和NumPy版本冲突

    Scipy是基于Numpy的科学计算工具库,方便、易于使用、专为科学和工程设计,是一个用于数学、科学、工程领域的常用软件包,这篇文章主要给大家介绍了关于Python常见报错解决之SciPy和NumPy版本冲突的相关资料,需要的朋友可以参考下
    2024-03-03
  • Python中的//符号是什么意思呢

    Python中的//符号是什么意思呢

    这篇文章主要介绍了Python中的//符号是什么意思,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python Pytorch gpu 分析环境配置

    Python Pytorch gpu 分析环境配置

    Pytorch是目前最火的深度学习框架之一,目前也支持了pytorch的GPU加速,所以我就想着,在这两个电脑上装个Pytorch,这篇文章主要介绍了Python Pytorch(gpu)分析环境配置,需要的朋友可以参考下
    2023-04-04
  • python目录操作之python遍历文件夹后将结果存储为xml

    python目录操作之python遍历文件夹后将结果存储为xml

    需求是获取服务器某个目录下的某些类型的文件,考虑到服务器即有Linux、又有Windows,所以写了一个Python小程序来完成这项工作,大家参考使用吧
    2014-01-01
  • Python OrderedDict的使用案例解析

    Python OrderedDict的使用案例解析

    这篇文章主要介绍了Python OrderedDict的使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • conda创建环境、安装包、删除环境步骤详细记录

    conda创建环境、安装包、删除环境步骤详细记录

    对于生信工作者,有一个方便可用的环境可以极大地方便我们开展分析,conda可以让我们在非root的情况下较为方便地切换不同的工作环境,下面这篇文章主要给大家介绍了关于conda创建环境、安装包、删除环境步骤的相关资料,需要的朋友可以参考下
    2022-08-08

最新评论