zoukankan      html  css  js  c++  java
  • json字符串的基本介绍以及dump(s)与load的讲解

    1.json字符串的基本介绍:

    1)JSON的定义:

    JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    2)JSON支持的格式:

    1.对象(字典)。使用花括号。
    2.数组(列表)。使用方括号。
    3.整形,浮点型,布尔型,null类型
    4.字符串类型(必须使用双引号)

     

    注意:json本质是个字符串。在python中内置就有json模块,直接导入即可。

    2.将python对象dump(s)为json字符串:

    1)dumps函数将目标对象一次全部转换(间接):

    import json
    persons = [
        {
            'username':'aaa',
            'age':18,
            'country':'China'
        }
        ,
        {
            'user':'bbb',
            'age':19,
            'country':'China'
        }
    ]
    json_str = json.dumps(persons)
    with open('persons.json','w',encoding='utf-8') as fp:
    fp.write(json_str)

      

    2)将 json 数据直接 dump 到文件中:

    在 json 模块中,除了dumps函数,还有一个 dump函数可以传入一个文件的指针,直接将字符串 dump 到文件中。

    import json
    persons = [
        {
            'username':'张三',
            'age':18,
            'country':'China'
        }
        ,
        {
            'user':'李四',
            'age':19,
            'country':'China'
        }
    ]
    with open('persons.json','w',encoding='utf-8') as fp:
        json.dump(persons,fp,ensure_ascili=False)
    

     注意,当有中文字符时,需要给上编码(encoding='utf-8')以及把 dump() 中的 ensure_ascii= 参数改成 False (默认为Ture)

    注意:在Pthon中,只有基本数据类型才能转成 json 格式的字符串。即,int float str list dict tuple。

    3.将json字符串load(s)成python对象:

    1)直接从文件中读取json:

    with open('persons.json','r',encoding='utf-8') as fp:
        persons = json.load(fp)
        print(persons)
    

      

    2)在python对象中读取:

    json_str = '[{"username": "张三", "age": 18, "country": "China"}, ' 
               '{"user": "李四", "age": 19, "country": "China"}]'
    persons = json.loads(json_str)
    print(persons)
    

      

  • 相关阅读:
    Alpha阶段项目复审
    复审与事后分析
    测试与发布(Alpha版本)
    第七天
    第六天
    团队作业第4周——项目冲刺
    第一天
    第二天
    第四天
    第五天
  • 原文地址:https://www.cnblogs.com/zyde-2893/p/11214052.html
Copyright © 2011-2022 走看看