json

json简介
全称JavaScript Object Notation(Jave Script对象表示法),它是一种基于文本,独立于语言的轻量级数据交换格式
。以易于让人阅读的文字为基础,用来传输由属性值或者序列值的数据对象。
特点:
轻量级的文本数据交换格式
易于阅读和编写
Web世界中最理想的数据交换格式

json语法规则:
1、数据由键值对组成
2、键值对由逗号分割
3、大括号中保存对象
4、中括号中保存数组
注意事项:
1、字符串必须用双引号“”来包括
2、值可以是字符串、数字、true、false、null、列表、字典。
json与python的一些比较:

目前前后端数据交互使用基本都是json
后端python与json的互转:json模块提供了API接口
json.dumps(obj) #将python数据格式转换为json
json.loads(s) #将json数据格式转换为python数据格式
json.dump(obj,fp) #将python数据格式转换为json并保存到文件中
json.load(fp) #从文件中读取json,并转换为python数据

#将python数据转换为json数据例子1
import json
my_dict = {
    'name':'lusi',
    'age':18,
    'a':True
}

result = json.dumps(my_dict) #一般在括号中还可以写indent=数字,控制输出缩进。
print(result)
#输出结果为:{"name": "lusi", "age": 18, "a": true}单引号全部转为双引号
print(type(result))
#输出结果为:字符串类型<class 'str'>
#将python数据转换为json例子2
import json
my_dict = {
    'name':'lusi',
    'age':18,
    'talent':'你好帅'
}
result = json.dumps(my_dict,indent=4)
print(result)
#输出结果为:
{
    "name": "\u58a8\u67d3",
    "age": 18,
    "talent": "\u4f60\u597d\u5e05"
}
#可以看到中文无法直接转换出来,使用ensure ascii确认是否使用ascii解析
result1 = json.dumps(my_dict,indent=4,ensure_ascii=False)
print(result1)
#最终可以正确显示
#将json转换为python数据
aa = json.loads(result1)
print(aa)
#输出结果:{'name': 'lusi', 'age': 18, 'talent': '你好帅'}
print(type(aa))#<class 'dict'>
#json.dump(obj,fp) #将python数据格式转换为json并保存到文件中
import json
my_dict = {
    'name':'lusi',
    'age':18,
    'talent':'你好帅'
}
with open('aaa.txt','w+') as f:
    result = json.dump(my_dict,indent=4,ensure_ascii=False,fp=f)
    f.seek(0)
    print(f.read())
#输出结果为:

# {
#     "name": "lusi",
#     "age": 18,
#     "talent": "你好帅"
# }
#json.load(fp) #从文件中读取json,并转换为python数据
import json

with open('aaa.txt','r+') as file:
    #(file.read())
    result2 = json.load(fp=file)
    print(type(result2))
    print(result2)

 

#简单练习
在程序中将字典转化为json并存入文件,然后再从该文件中读取"",将这个字符打印出来。
'''
import json
data = {
    'name':'nanbei',
    'age':18,
    'feature':['高','富','帅']
}
with open('bbb.txt','w+') as f:
    result = json.dump(data,ensure_ascii=False,fp=f)
    f.seek(0)
    print(f.read())

with open('bbb.txt','r+') as file:
    res = json.load(fp=file)
    print(type(res))
    print(res["feature"][-1])

 


posted @ 2019-05-07 23:55  上古战神  阅读(309)  评论(0编辑  收藏  举报