python学习笔记(13)json模块

一、json

  JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。

  标准JSON格式:{“name”:"Tom"},类似与python中的字典,但是key和value都是双引号,而字典是单引号 ,json是一种特殊的字符串

  json模块常用的四种方法:dumps 、loads、dump、load

  1)dumps和loads方法

  dumps:将字典型转换为json字符串

  实例1:

import json

person = {
    'name': 'ACME',
    'sex': 'male',
    'height': 100,
    'price': 542.23,
    'hobby': 'sing'
}

# 一个Python数据结构转换为JSON 字符串
json_str = json.dumps(person,indent=4)
) print(type(person),person) print(type(json_str),json_str)

  返回结果:

<class 'dict'> {'name': 'ACME', 'sex': 'male', 'height': 100, 'price': 542.23, 'hobby': 'sing'}

<class 'str'> {
"name": "ACME",
"sex": "male",
"height": 100,
"price": 542.23,
"hobby": "sing"
}

  

loads方法:一个JSON编码的字符串转换回字典类型

# json.loads()
#将json字符串转为字典
stat =  json.loads(json_str)
print(stat)
print(type(stat))

  返回结果:

{'name': 'ACME', 'sex': 'male', 'height': 100, 'price': 542.23, 'hobby': 'sing'}
<class 'dict'>

  

 

2)dump和load方法

  

dump方法先将person转换为json字符串,再自动写入文件
import json

person = {
    'name': 'ACME',
    'sex': 'male',
    'height': 100,
    'price': 542.23,
    'hobby': 'sing'
}

with open('json_1.txt','w',encoding='utf-8') as f:
    json.dump(person,f,indent=4,ensure_ascii=False) #indent表明json的首行缩进空格数,ensure_asscii=False 表示不使用ascii就可以正常展示中文
#------------------等价于---------- # content=json.dumps(person) # f.write(content) #dump方法先将person转换为json字符串,再自动写入文件

  返回结果(json_1.txt):

'''
json_1.txt content
'''
{"name": "ACME", "sex": "male", "height": 100, "price": 542.23, "hobby": "sing"}

  

load:自动读取文件内容,并自动将内容转换为字典

with open('json_1.txt',encoding='utf-8') as f:
    str=json.load(f)
    #----------等价于--------
    # content=f.read()
    # str=json.loads(content)

print(str)

  返回结果:

{'name': 'ACME', 'sex': 'male', 'height': 100, 'price': 542.23, 'hobby': 'sing'}

  

posted @ 2020-05-05 20:15  布谷鸟的春天  阅读(166)  评论(0编辑  收藏  举报