zoukankan      html  css  js  c++  java
  • dump、load、dumps、loads,json与python数据数据转换

    ###平时使用python来进行文件读写时,免不了会出现将字典、list数据类型的字符写入到文件中,又或者将文件中读取的数据转换成python数据类型,然后易于操作等,那么此时就需要学会二者之间的互相转换 ###之间很长一段之间都傻傻分不清楚dump、load、dumps、loads,它们什么时候用,用来干什么,现在终于了解明白清楚了,现在一一记录下来,说明每一个的用法

    import json
    
    info={
        
        "name":"xiaoming",
        
        "age":12
    }
    
    print(type(info)) #dict
    

    ####将字典类型的info写入文件

    with open ('info.txt','w+',encoding='utf-8') as f:
    
        f.write(info)  
        #此时会报错,提示写入文件时,必须写的时字符串类型
    那么此时,就需要把字典转成字符串写入到文件中,而json字符串就是长得和字典很相像的字符串
    

    那么接下来,我们需要将python数据类型转化成json类型,然后操作文件的读写

    #方法一:字典转成json串,然后写入文件
    new_info = json.dumps(info)
    
    print(type(new_info)) #str ,此时new_info是字符串类型,再将new_info写入到文件中
    
    with open ('info.txt','w+',encoding='utf-8') as f:
    
        f.write(new_info)
      
    
    #方法二:直接使用json.dump()
    
    with open ('info1.txt','w+',encoding='utf-8') as f:
    
        json.dump(info,f) #将字典转化成j son字符串,同时写入文件
    
    

    -------------------------------------我是分割线---------------------------------------

    ####那么如何将从文件内读取处理的json串转化成python能操作的数据类型呢?这里将使用到load,loads方法,把json串转化成python数据类型

    下面举例说明

    拿咱们上边写好的"info.txt"文件来说,里边存好了写入的json串

    方法一:将文件内容读取出来之后,然后转化类型
    
    第一步读取文件
    with open('info.txt','r+',encoding='utf-8') as fr:
    
        con = fr.read()
    
        print('我是文件内容:%s,我的类型是%s'%(con,type(con)))
    
        #我是文件内容:{"name": "xiaoming", "age": 12},我的类型是<class 'str'>
    
    #第二步,将json串转化成python数据类型
    new_con = json.loads(con)
    
    print(type(new_con)) 
    #<class 'dict'> 此时我们就可以使用python处理python数据类型了~
    
    方法二:直接在操作文件的时候使用json.load(文件对象),这样读取出来的已经转好为python数据类型
    
    with open('info.txt','r+',encoding='utf-8') as fr:
    
        con=json.load(fr)
    
        print('我是文件内容:%s,我的类型是%s' % (con, type(con)))
    
        #我是文件内容:{'age': 12, 'name': 'xiaoming'},我的类型是<class 'dict'>
    
  • 相关阅读:
    使用TestStack.White进行Windows UI的自动化测试
    基于IDEA的JavaWeb开发环境搭建
    hfish 集群蜜罐搭建
    HFish开源蜜罐搭建
    redis实现查找附近商户信息功能
    WIN10 HYPERV 1503
    RPC
    推荐一个聚合搜索引擎提高学习工作效率
    RocketMQ原理分析&场景问题
    《高性能利器》--异步调用实现原理详解!
  • 原文地址:https://www.cnblogs.com/zhuyue1/p/7146853.html
Copyright © 2011-2022 走看看