主页 > 电脑硬件  > 

json介绍、python数据和json数据的相互转换

json介绍、python数据和json数据的相互转换

目录

一 json介绍

json是什么?

用处

Json 和 XML 对比

各语言对Json的支持情况

Json规范详解

二 python数据和json数据的相互转换

dumps() : 转换成json

loads(): 转换成python数据

 总结


一 json介绍 json是什么?

实质上是一条字符串

是一种文本数据格式, 是一种文本规范 是一种字符串规范

用处

一般适合文本量不大,且需要记录树形结构的数据 或 需要灵活扩展数据

Json 和 XML 对比

Json文本     更简洁易懂,对人更友好     适合数据量不大,结构不复杂的场景 (如:后端接口的参数)     比XML更小、更快、更易解析

XML 文本     程序处理更方便,对机器更友好     适合数据量大,结构复杂的场景(如:HTML是基于XML的)  

各语言对Json的支持情况

1 Json实质上是一条字符串,程序中使用json,需要特定的方法转换为对象变量才能使用 2 Json是一种文本规范,各语言对Json的支持情况: JavaScript:原生支持    √ Python:原生支持.import json   √ Java:原生不支持,需要引入Gson或FastJson C++:原生不支持,引入Jsoncpp等库

Json规范详解

支持6种类型的值 1 字符串  如 "test String"         字符串中如果有双引号,需要使用\转义,如"test \" String"

2 数字  如 0.2 999 -1.1     可以是整数、浮点数(小数)      3 布尔值 true false

4 null (空值)

5 对象 可嵌套数据,如 {"key1":"value1","key2":"value2"}     包含在一对{}之内     用,隔开多个键值对     *键值对的 键 必须为字符串     *键值对的 值 可以是6种值类型的任意一种,且无需统一类型     {"key1":"value1","key2":true,"key3":{},"key4":23}

6 数组 可嵌套数据,如 ["value1","value2","value3"]     包含在一对[]之内的     单个数组内的多个值用,隔开     数组内的值可以是Json支持的6种值的任意一种     单个数组内的多个值无需统一类型

备注: Json文本中多余的空格、换行不会有实质的影响,仅仅是为了方便阅读

二 python数据和json数据的相互转换

dumps() : 转换成json import json #准备列表 data=[{"姓名":"小明","年龄":"12"},{"姓名":"小红","年龄":"13"},{"姓名":"小李","年龄":"8"}] #转换成json # 有中文的时候加 ensure_ascii=False json_str = json.dumps(data,ensure_ascii=False) print(json_str) print(type(json_str)) #准备字典 #转换成json dic1={"水果":"西瓜","蔬菜":"胡萝卜","蛋白质":"牛肉"} json_str2 = json.dumps(dic1,ensure_ascii=False) print(json_str2) print(type(json_str2))

 json实质上就是字符串str 

loads(): 转换成python数据 import json #准备json数据 s1='[{"姓名":"小明","年龄":"12"},{"姓名":"小红","年龄":"13"},{"姓名":"小李","年龄":"8"}]' #转换成列表 l1 = json.loads(s1) print(l1) print(type(l1)) #准备json数据 #转换成字典 s2='{"水果":"西瓜","蔬菜":"胡萝卜","蛋白质":"牛肉"}' d1 = json.loads(s2) print(d1) print(type(d1))

 总结

标签:

json介绍、python数据和json数据的相互转换由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“json介绍、python数据和json数据的相互转换