json 模块

json简介

  json的全称是JavaScript Object Notation(即JavaScript对象标记),

  他是JavaScript的子集。在python中,json是轻量级的文本数据交换格式,

  前端和后端进行数据交互,其实就是json和python进行数据交互

 

     

json与python语法规则的区别

  python        json

  字典            对象

  列表或元组         数组

  字符串           字符串

  int或floot          数字

  True或False          true或false

  None              none

 

注意:json必须是双引号!

json模块api

接口一:json.dumps(obj)     # 把python转换成json格式

接口二:json.loads(s)     # 把json转换成python格式

接口三:json.dump

接口四:json.load

json.dumps():

import json
date = {
    'name':'pywjh',
    'age':18
}

json_date = json.dumps(date)    # 将python字典转化为json字符串
print(json_date)

-->
{"name": "pywjh", "age": 18}

 

这里需要注意一点:

  python中的列表和元组。在转换成json后,都变成了python中的元组,(换句话说就是json中没有列表形式的格式)

  布尔值也会变成小写

  没有字典和集合格式

import json
date = {
    'name':'pywjh',
    'list':[1, 2, 4, 5],
    'tuple':(2, 4, 6, 8),
    'bool':True,
}

json_date = json.dumps(date)
print(json_date)


-->
{"name": "pywjh", "list": [1, 2, 4, 5], "tuple": [2, 4, 6, 8], "bool": true}

 

 

json.loads():

  json.loads()并没有识别列表和元组的功能,所以之前的元组和列表,都变成了列表

import json
date = {
    'name':'pywjh',
    'list':[1, 2, 4, 5],
    'tuple':(2, 4, 6, 8),
    'bool':True,
}

json_date = json.dumps(date)  # python字典转换成json字符串

# 接着之前的代码
python_date = json.loads(json_date)  # json字符串转换成python字典
print(python_date)

-->
{'name': 'pywjh', 'list': [1, 2, 4, 5], 'tuple': [2, 4, 6, 8], 'bool': True}

 

 

 

json.dump和json.load主要针对文件操作使用,方法和上下文管理器一样

dump:

import json

date = {
    'name':'pywjh',
    'list':[1, 2, 4, 5],
    'tuple':(2, 4, 6, 8),
    'bool':True,
}

with open('json_file.json', 'w') as f:  # json_file.json 有则操作,无则自动创建以后再操作
    json.dump(date, f)

 

相同路径下就会多出来一个.json文件

 

 

load:

import json

with open('json_file.json', 'r') as f:
    json_date = json.load(f)

print(json_date)
print(type(json_date))

-->
{'name': 'pywjh', 'list': [1, 2, 4, 5], 'tuple': [2, 4, 6, 8], 'bool': True}
<class 'dict'>

 

posted @ 2018-08-26 20:34  pywjh  阅读(250)  评论(0)    收藏  举报
回到顶部