【python】JSON数据类型与Python数据类型之间的转化

简介: 【python】JSON数据类型与Python数据类型之间的转化

注:最后有面试挑战,看看自己掌握了吗


🌸I could be bounded in a nutshell and count myself a king of infinite space.

特别鸣谢:木芯工作室 、Ivan from Russia


JSON格式文件

上文看出,没有经过格式化处理的文本非常垃圾,必须得有个格式!

别人如果想要通过程序自动读取该文件信息,也非常难受

JSON就是来解决这个问题的 弥撒亚

Messiah

JSON格式

JavaScript Object Notation ---------JavaScript对象标注符号

序列化与反序列化

序列化:把python数据转换为JSON格式

反序列化:反过来

作用

序列化后的JSON格式字符串可以存储在文件或数据中,也能通过网络连接传送到远程的机器

JSON常用数据结构

键值对的集合

在不同语言被理解为不同的东西

可能是 对象,记录, 结构, 字典, 哈希表, 有序列表, 关联数组

值的有序列表

大部分语言中 被理解为数组

python种 主要对应列表元组

JSON数据类型与Python数据类型之间的转化

python自带处理JSON数据的模块

该模块的dumps实现python数据转为JSON数据

loads实现JSON数据转为python数据的过程

JSON格式和python的区别

json的对象格式在开始和结尾加了单引号,因为所有json数据都是以字符串形式表示的

dumps

loads

# coding=gbk
import json
p_d = {'tt':20,'eq':95,'cc':52}
print(p_d)
p_2_j = json.dumps(p_d)# dumps把字典转为json数据
print(p_2_j)# JSON格式和python的区别:json的对象格式在开始和结尾加了单引号,因为所有json数据都是以字符串形式表示的
j_2_p = json.loads(p_2_j)
print(j_2_p)
{'tt': 20, 'eq': 95, 'cc': 52}
{"tt": 20, "eq": 95, "cc": 52}
{'tt': 20, 'eq': 95, 'cc': 52}

读写json文件

python的json模块为json提供了dump和load操作对象

dump 把python 写到json文件

def dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True,
        allow_nan=True, cls=None, indent=None, separators=None,
        default=None, sort_keys=False, **kw):

obj–python语言对象

f-------以字符串知名存储的文件名,可以带路径

ensure_ascii—表示只接受ascii表数据类型, 当为false时候接受其他 如中文

Serialize obj as a JSON formatted stream to fp (a

.write()-supporting file-like object).

将“ obj”序列化为 JSON 格式的流到“ fp”(a”. write ()“-支持类似文件的对象)。

If skipkeys is true then dict keys that are not basic types

(str, int, float, bool, None) will be skipped

instead of raising a TypeError.

如果“ skipkeys”为真,那么“ dict”键不是基本类型(“ str”、“ int”、“ float”、“ bool”、“ None”)将被跳过而不是引发“ TypeError”。

If ensure_ascii is false, then the strings written to fp can

contain non-ASCII characters if they appear in strings contained in

obj. Otherwise, all such characters are escaped in JSON strings.

如果“ sure _ ascii”为 false,则写入“ fp”的字符串可以中包含的字符串中出现的非 ASCII 字符否则,所有这些字符将在 JSON 字符串中转义。

load 把json写到 python数据类型

def load(fp, *, cls=None, object_hook=None, parse_float=None,
        parse_int=None, parse_constant=None,object_pairs_hook=None, **kw):

Deserialize fp (a .read()-supporting file-like object containing

a JSON document) to a Python object.

读写JSON文件基本案例

# coding=gbk
import json
import sys
def saveTOJSON(filename,dicObject):
    flag = False
    if type(dicObject)!=dict:
        return flag
    try:
        j_file = open(filename,'w')
        json.dump(dicObject,j_file,ensure_ascii=False)
        flag = True
    except:
        print('个%s这'%(filename))
    finally:
        if flag:
            j_file.close()
    return flag
def GetFromJSON(filename):
    flag = False
    dicObject = {}
    try:
        j_file = open(filename,'r')
        dicObject=json.load(j_file)
        flag = True
    except:
        print("duqu%schucuo"%(filename))
    finally:
        if flag:
            j_file.close()
    return dicObject
students = {'mingzi':"xiaoming",'tt':"20",'eq':95,'cc':52}
filename='student.json'
f_OK = saveTOJSON(filename,students)
if f_OK:
    print("baocun chenggong")
else:
    sys.exit()
d_get_s=GetFromJSON(filename)
if d_get_s:
    print(d_get_s)# 打印返回的字典对象
# coding=gbk
import json
import sys
def saveTOJSON(filename,dicObject):
    flag = False
    try:
        j_file = open(filename,'w')
        json.dump(dicObject,j_file,ensure_ascii=False)
        flag = True
    except:
        print('个%s这'%(filename))
    finally:
        if flag:
            j_file.close()
    return flag
def GetFromJSON(filename):
    flag = False
    dicObject = {}
    try:
        j_file = open(filename,'r')
        dicObject=json.load(j_file)
        flag = True
    except:
        print("duqu%schucuo"%(filename))
    finally:
        if flag:
            j_file.close()
    return dicObject
students = 'xiaomingadsfasfsadf'
filename='student.json'
f_OK = saveTOJSON(filename,students)
if f_OK:
    print("baocun chenggong")
else:
    sys.exit()
d_get_s=GetFromJSON(filename)
if d_get_s:
    print(d_get_s)# 打印返回的字典对象
相关文章
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
JSON API 数据格式
Python采集京东商品评论API接口示例,json数据返回
下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析
|
存储 JSON API
Python与JSON:结构化数据的存储艺术
Python字典与JSON格式结合,为数据持久化提供了便捷方式。通过json模块,可轻松实现数据序列化与反序列化,支持跨平台数据交换。适用于配置管理、API通信等场景,兼具可读性与高效性,是Python开发中不可或缺的数据处理工具。
610 0
|
XML JSON API
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
925 4
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
1518 0
|
JSON 安全 API
Python处理JSON数据的最佳实践:从基础到进阶的实用指南
JSON作为数据交换通用格式,广泛应用于Web开发与API交互。本文详解Python处理JSON的10个关键实践,涵盖序列化、复杂结构处理、性能优化与安全编程,助开发者高效应对各类JSON数据挑战。
608 1
|
Python
Python中不同数据类型之间如何进行转换?
Python中不同数据类型之间如何进行转换?
911 160

推荐镜像

更多