zoukankan      html  css  js  c++  java
  • Python解析json字符串,json字符串用法

    json数据简介

    json数据是一个轻量级的数据交换格式,采用完全独立于语言的文本格式,这些特性使json称为理想的数据交换语言,易于人阅读和编写,同时易于机器解析和生成。

    json的字符集必须是UTF-8json中的字符串必须用双引号引起。几乎所有语言都内置了解析json的库,JavaScript语言可以直接使用json

    json格式一般是键值对的格式比如

    键值对{“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”}

    再比如:

    {

    “programers”:[

     {“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”},

    {“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”}

    ],

    “authors”:[

     {“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”},

    {“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”}

    ],

    }

    json的应用场景:web服务端的go数组->json字符串->网络传输->json字符串->序列化->go数组->信息呈现给用户。

    Python中解析json的库

    import json
    # 字典类型转换为json字符串
    data = {"id": 1, 'name': 'sy', 'passwrd': '123123'}
    
    print(type(data))
    json_str = json.dumps(data)
    print(type(json_str))
    print(json_str)
    
    print("*" * 20)
    
    # json字符串转换为字典类型
    json_str2 = '{"programers":[ {"firstName":"Breet","lastName":"MMM","email":"XXX"},'
                '{"firstName":"Breet","lastName":"MMM","email":"XXX"}], ' 
                '"author": [{"firstName": "su", "lastName": "yang", "email": "XXX"},'
                '{"firstName": "Breet", "lastName": "MMM", "email": "XXX"}]}'
    
    print(type(json_str2))
    
    data2 = json.loads(json_str2)
    
    print(type(data2))
    print(json_str2)
    print(data2)
    
    print('*' * 20)
    
    # 将json数据写入文件,用文件传送
    
    with open('aaa.json', 'w') as f:
        json.dump(data, f)
    
    with open('aaa.json', 'r') as f:
        data3 = json.load(f)
        print(type(data3))
        print(data3)

    运行结果:

    <class 'dict'>

    <class 'str'>

    {"id": 1, "name": "sy", "passwrd": "123123"}

    ********************

    <class 'str'>

    <class 'dict'>

    {"programers":[ {"firstName":"Breet","lastName":"MMM","email":"XXX"},{"firstName":"Breet","lastName":"MMM","email":"XXX"}], "author": [{"firstName": "su", "lastName": "yang", "email": "XXX"},{"firstName": "Breet", "lastName": "MMM", "email": "XXX"}]}

    {'programers': [{'email': 'XXX', 'lastName': 'MMM', 'firstName': 'Breet'}, {'email': 'XXX', 'lastName': 'MMM', 'firstName': 'Breet'}], 'author': [{'email': 'XXX', 'lastName': 'yang', 'firstName': 'su'}, {'email': 'XXX', 'lastName': 'MMM', 'firstName': 'Breet'}]}

    ********************

    <class 'dict'>

    {'id': 1, 'name': 'sy', 'passwrd': '123123'}

  • 相关阅读:
    字符串分割并按大小排序
    为人之气
    RMQ
    线段树
    算法中的数学
    动态规划(DP)
    图的表示
    广度优先搜索(BFS)
    深度优先搜索(DFS)
    MyBatis(3.2.3)
  • 原文地址:https://www.cnblogs.com/sy_test/p/12160456.html
Copyright © 2011-2022 走看看