python文件处理——JSON格式文件

python文件处理——JSON格式文件


  hello!我是wakeyo_J,每天一个konwledge point,一起学python,让技术无限发散。

1. JSON格式

  定义: JSON(Java脚本对象标注符),是一种轻量级的数据交换格式。python将数据转化为JSON格式(带格式的字符串)的过程叫序列化;把JSON格式转化为python数据类型的过程叫反序列化。

1.1 JSON常用的两种结构数据类型

  1. “键-值”对的集合。在不同的语言中,“键-值”对被理解为对象(object)、记录(record)、结构(struct)、字典(dictionary)、哈希表(hash table)、有键列表(keyed list)或者关联数组(associative array)。python中对应的是字典。
  2. 值得有序列表。在大部分语言中,它被理解为数组(array)。python语言中对应列表、元组。

1.2 JSON数据与python数据之间得互相转化

  为了实现不同编程语言编写得文件数据共享,除了需要统一数据结构形式外,还需要统一数据类型。JSON定义了标准数据类型。
在这里插入图片描述

1.3 示例

  python自带处理JSON数据的json模块,该模块的dumps实现python数据转化为JSON数据,loads实现JSON数据转化为python数据的过程。

import json         #导入json模块

p_d = {"tom":29,"jack":20,"jim":12}     #定义字典对象p_d
print(p_d)
print('=='*30)
p_to_j = json.dumps(p_d)    #通过dumps把字典对象转化为JSON类型
print(p_to_j)
print('=='*30)
j_to_p = json.loads(p_to_j)    #把JSON格式转换为python的字典格式
print(j_to_p)

效果:
在这里插入图片描述

2. 读取JSON文件

  python的json模块为读写JSON文件提供了dump和load操作对象。

2.1 dump、load函数使用介绍

  1. dump(obj,f,ensure_ascii=True,…)函数用于把python数据写入JSON文件。
    ①obj参数,为python语言数据对象
    ②f参数,以字符串形式指明需要存储的文件名,可以带路径,建议加上扩展名(可以任意指定)。
    ③ensure_ascii参数,默认值为True,意味着只接受ASCII类型的数据类型(中文存储时会变成\u格式的十六进制形式);为False时,可以接受其他非ASCII类型的数据(包括中文)。

  2. load(f,…)函数实现从JSON文件里读取数据。
    f参数,以字符串形式指明需要存储的文件名。

2.2 读取JSON文件代码案例

import json
import sys

def saveToJSON(filename,dicObject):         #定义写JSON文件函数saveToJSON
    flag = False
    if type(dicObject)!=dict:       #这里只允许字典类型数据保存
        return flag
    try:
        j_file = open(filename,"w")         #以写方式打开指定的JSON文件
        json.dump(dicObject,j_file,ensure_ascii=False)  #以JSON格式写数据
        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)       #读取JSON文件数据,并转换为python的字典对象
        flag = True
    except:
        print("从%s读JSON数据出错!"%filename)
    finally:
        if flag:
            j_file.close()
    return dicObject

d_student = {"name":"wky","age":18,"birthday":"2000年12月25日"}
filename = "student.json"       #指定JSON文件名称
f_ok = saveToJSON(filename,d_student)   #调用saveToJSON函数
if f_ok:
    print("学生信息保存到json文件成功!")
else:
    sys.exit()          #调用saveToJSON失败,退出程序
d_get_s = GetFromJSON(filename)  #调用GetFromJSON函数
if d_get_s:             #字典值为非空时,都为True,空为False
    print(d_get_s)

效果:
在这里插入图片描述


总结

  本文属于作者原创,转载请注明出处,不足之处,希望大家能过给予宝贵的意见,如有侵权,请私信。每天一个knowledge point,一起学python,让技术无限发散

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python独角兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值