【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提供了dumpload操作对象

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)# 打印返回的字典对象
相关文章
|
18天前
|
Python
Python 中一些常见的数据类型
Python 中一些常见的数据类型
68 8
|
24天前
|
Python
Python中不同数据类型之间如何进行转换?
Python中不同数据类型之间如何进行转换?
24 6
|
24天前
|
存储 开发者 Python
Python 的数据类型
Python 的数据类型
31 6
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
2月前
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
66 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
|
28天前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
26 0
|
2月前
|
编译器 数据安全/隐私保护 Python
Python--基本数据类型
【10月更文挑战第4天】
|
2月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
52 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
2月前
|
存储 Python
python数据类型、debug工具(一)
python数据类型、debug工具(一)