码迷,mamicode.com
首页 > 编程语言 > 详细

Python-json模块

时间:2018-04-17 19:49:47      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:小练习   load   load()   要求   ascii   双引号   转化   引入   file   

json串是任何语言都可以识别的,因此json模块是一个重要的模块。

json串实际上就是字符串。

1、json格式

json格式如下,必须使用双引号。

技术分享图片

2、读json文件

读取json文件后,数据类型是字符串类型。可以引入json模块,用json.loads或者json.load将其变为字典类型。

例:有一个文件products.json。

(1)用json.loads()

用read将文件读出来,然后把读出来的数据用json.loads()转换为字典类型。

通过运行结果可以看出,读出啦的res格式是字符串,json.loads()将其转化为字典格式。

技术分享图片 

技术分享图片

(2)用json.load()

 可以看到json.load()可以直接传文件对象,它会帮助读文件,并且转化为字典格式。

技术分享图片

技术分享图片

 3、写入json文件

同样的,导入json模块。可以用json.dumps()或者json.dump()将其转化为json格式,写入文件。

(1)json.dumps()

首先用json.dumps()将字典转化为json格式,存入user_info,然后将user_info写入文件。

其中,ensure_ascii=False 是为了保证中文不被编码,能够正常显示。indent=4指的是缩进是4。

技术分享图片

运行之后,user_info.json文件内容为:

技术分享图片

(2)json.dump()

json.dump()可以直接操作文件对象,实现的功能一样,能够直接将字典格式转化为json格式,并且写入文件。

技术分享图片

4、小练习

学生信息存在json文件里,要求实现学生的注册和删除。

stus_info.json文件内容为为:

技术分享图片

import json
def op_data(filename,content=None):
    if content:#如果有内容,将内容写入json文件
        with open(filename,w,encoding=utf-8) as fw:
            json.dump(content, fw, ensure_ascii=False, indent=4)
    else:#如果content为None,则读取json文件
        with open(filename,encoding=utf-8) as fr:
            return json.load(fr)

FILE_NAME = stus_info.json#定义常量
all_stus = op_data(FILE_NAME)

for i in range(3):
    choice = input(1注册,2删除,请输入:)
    if choice==1:
        username = input(usenrame:)
        pwd = input(pwd:)
        if username not in all_stus:
            all_stus[username]=pwd
            op_data(FILE_NAME,all_stus)
            print(恭喜,%s注册成功!%username)
    elif choice=="2":
        username = input(usenrame:)
        all_stus.pop(username)
        op_data(FILE_NAME, all_stus)
        print(%s删除成功!%username)
    else:
        print(输入错误,请重新输入)

 

Python-json模块

标签:小练习   load   load()   要求   ascii   双引号   转化   引入   file   

原文地址:https://www.cnblogs.com/zhxwind/p/8866870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!