前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【python】JSON数据类型与Python数据类型之间的转化

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

作者头像
20岁爱吃必胜客
发布2023-03-06 14:02:13
7580
发布2023-03-06 14:02:13
举报
文章被收录于专栏:进步集

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

文章目录


🌸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

代码语言:javascript
复制
# 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文件

代码语言:javascript
复制
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数据类型

代码语言:javascript
复制
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文件基本案例

代码语言:javascript
复制
# 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)# 打印返回的字典对象
代码语言:javascript
复制
# 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)# 打印返回的字典对象
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • JSON格式文件
    • JSON格式
      • 序列化与反序列化
        • 作用
        • JSON常用数据结构
          • 键值对的集合
            • 值的有序列表
            • JSON数据类型与Python数据类型之间的转化
            • JSON格式和python的区别
            • 读写json文件
              • dump 把python 写到json文件
                • load 把json写到 python数据类型
                • 读写JSON文件基本案例
                相关产品与服务
                文件存储
                文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档