json

json模块的读和写

dump and load 

集合是不能转换成json类型

json格式是引号里面放列表,它本身是一个字符串。

 

什么是json?

json是一个序列化模块,是一个“第三方”的特殊数据格式。

json的原理

可以将python的数据类型》》转换成json数据格式》》转成字符串》》文件中

其他语言想要使用python的数据:

文件夹》》字符串》》json数据格式》》其他语言的数据类型

 

为什么要使用json:

为了让不同的语言之间数据可以共享。

ps:由于各种语言的数据类型不一,但长相可以一样,比如python不能直接使用其他语言的数据类型,必须将其他语言的数据类型转换成json数据格式。python获取到json数据后可以将json转换成python的数据类型。

 

 

如何使用:

import   json

1、json.dumps:      json.dump() ---》  f = open() --》  f.write

序列化:python数据类型--》json--》字符串--》json文件中

2、json.loads:      f = open(),str = f.read(),json.loads(str)

反序列化:json文件中--》字符串--》json--》python或其他语言数据类型

1-1 json.dump(): # 序列化: python数据类型 ---》 json ---》 字符串 ---》 json文件中内部实现 f.write()

2-1 json.load(): # 反序列化: json文件中 --》 字符串 ---》 json ---》 python或其他语言数据类型内部实现 f.read()

 

举例:

1、检测列表类型

import json

list1 = ['123', '321']

json_str = json.dumps(list1, ensure_ascii=False)

print(json_str)              运行结果:["123", "321"]     

print(type(json_str))        运行结果:<class 'str'>

 

python_data = json.loads(json_str)     中间的方法转换

print(python_data)                   运行结果:['123', '321']              

print(type(python_data))              运行结果:<class 'list'>


import json
set1 = {1,2,3,4,5}

json_str = json.dumps(set1,ensure_ascii=False)
print(json_str) 运行结果: Object of type set is not JSON serializable

 

 

注意点:

1、在json中,所有的字符串都是双引号

2、python中的元组,若将其转换成json数据,内部会将元组---》列表

3、集合(set)是不能转换成json数据。

4、保存json数据时,用.json作为文件的后缀名

 

 

 

posted @ 2019-11-18 19:32  medigrat  阅读(137)  评论(0编辑  收藏  举报