Python中数据和JSON互相转换

什么是json

  • JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据 。
  • JSON本质上是一个带有特定格式的字符串
  • 主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互. 类似于:
    • 国际通用语言-英语
    • 中国56个民族不同地区的通用语言-普通话

 json有什么用

  • 各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型, 而其它语言可能没有对应的字典。

为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式。如下图,以Python和C语言互传数据为例:Python中数据和JSON互相转换_第1张图片

 json格式数据转化

  •  json格式数据转化
# json数据的格式可以是:

{"name": "admin", "age": 18}

# 也可以是: 

[{"name": "admin", "age": 18}, {"name": "root", "age": 16}, {"name": "张三", "age": 20}]

Python数据和Json数据的相互转化

  • Python数据和Json数据的相互
    # 导入JSON模块
    import json
    # 准备列表,列表内每一个元素都是字典,将其转换为JSON
    data = [{'name': "张三", 'age': 12}, {'name': "李四", 'age': 20}, {'name': "赵武", 'age': 32}]
    # 使用ensure_ascii='False'  表示不使用Ascii转换中文
    # 使用ensure_ascii='True'  表示使用Ascii转换中文
    json_str = json.dumps(data, ensure_ascii=False)
    print(type(json_str))
    print(json_str)
    
    
    # 准备字典,将字典转换为JSON
    data = {'name': "张三", 'age': 12}
    json_str = json.dumps(data, ensure_ascii=False)
    print(type(json_str))
    print(json_str)
    
    
    # 将JSON字符串转换Python数据类型[{k: v, k: v}, {k: v, k: v}]
    s = '[{"name": "张三", "age": 12}, {"name": "李四", "age": 20}, {"name": "赵武", "age": 32}]'
    l = json.loads(s)
    print(type(l))
    print(l)
    
    
    # 将JSON字符串转换Python数据类型{k: v, k: v}
    s = '{"name": "张三", "age": 12}'
    l = json.loads(s)
    print(type(l))
    print(l)
    
    
    结果:
    
    [{"name": "张三", "age": 12}, {"name": "李四", "age": 20}, {"name": "赵武", "age": 32}]
    
    
    
    {"name": "张三", "age": 12}
    
    
    
    [{'name': '张三', 'age': 12}, {'name': '李四', 'age': 20}, {'name': '赵武', 'age': 32}]
    
    
    
    {'name': '张三', 'age': 12}
    
    
    

    总结:

1. json:是一种轻量级的数据交互格式, 采用完全独立于编程语言的文本格式来存储和表示数据(就是字符串)

Python语言使用JSON有很大优势,因为:JSON无非就是一个单独的字典或一个内部元素都是字典的列表

所以JSON可以直接和Python的字典或列表进行无缝转换。

2. json格式数据转化

         通过   json.dumps(data)   方法把python数据转化为了 json数据

                  data = json.dumps(data)

                  如果有中文可以带上:ensure_ascii=False参数来确保中文正常转换

        通过  json.loads(data)  方法把josn数据转化为了 python列表或字典

                 data = json.loads(data)

你可能感兴趣的:(Python,json,python,开发语言,windows)