python3中可以使用json模块对JSON数据进行解析:
json.dumps(dict):将字典数据转化为json数据
json.loads(json):将json数据转换为dict数据
字典数据和json的区别:
从本质上讲,字典是一种数据结构,而json是一种格式;字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,
并不像字典具备操作性,并且是格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界
符号,不能使用单引号,但字典就无所谓了。
import json
data={"name":"Vince","age":18,"sex":"male"}
print(type(data)) #结果:<class 'dict'>
#将dict字典数据转换为json数据,即说明参数为字典dict ,同为d开头的
json_str=json.dumps(data)
print(type(json_str)) #结果:<class 'str'>
print(json_str) #结果:{"name": "Vince", "age": 18, "sex": "male"}
#将json数据转换为dict字典数据
json_str2='{"age": 18, "sex": "male", "name": "Vince"}' #json是一个数据格式,字符串,所以这里外层得带上带引号表示字符串
dict_new=json.loads(json_str2)
print(type(dict_new)) #结果:<class 'dict'>
print(dict_new) #结果:{'name': 'Vince', 'age': 18, 'sex': 'male'}
解析json报错:
如:str1="{'a':1,'b':{'c':3}}"
result=json.loads(str1)
结果:报错
json.decoder.JSONDecoderError:Excepting property name enclosed in double quotes
即,字符串json的属性名必须用双引号,不能是单引号
如:str2='{"a":1,"b":{"c":3}}'
result=json.loads(str2)
data={"name":"Vince","age":18,"sex":"male"}
#将dict字典数据写入到json文件中
with open("data.json","w") as f:
json.dump(data,f) #将字典数据data转为json数据流写入到f中
#读取json数据文件,保存为dict数据类型
with open("data.json","r") as f:
dict_new=json.load(f)
print(dict_new) #结果:{'sex': 'male', 'age': 18, 'name': 'Vince'}
Json数据
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 起因 后台返回的JSON数据中,部分ID使用了一长串数字作为ID使用,但由于JS的number会伴随精度丢失的问题...
- 今天在上班的时候,因为要涉及到springmvc写json接口,通过ajax写数据到前端,然后就发现一个很神奇的事...
- 直接复制js 的json数据,用php的方法总是返回空,肯定是格式不正确 后面想到了一个解决办法 先在页面上用 复...
- 说明 :每天更新,永久免费使用,不限请求次数 。 测试示例固定缓存服务器位置,对应ID可以访问,具体请求或抓取方式...
- 2018年秋美丽乡村网络公益大课表正式发布。我们学校在校长的带领下也正式参与了这张全国通用大课表,根据大课...