JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition -December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript,Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
JSON建构有两种结构:
Json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
数组:数组在js中是中括号“[]”括起来的内容,数据结构为 [“java”,"javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了.
在python,一个Json对象读进来之后就变成了dict对象类型。
对象值能够替换为对象和数组
数组值能够替换为对象和数组
Json整体:{整体内容}
对象:{对象部分}
数组:[数组部分]
属性:直接使用
举例如下:
json.dumps() 是将 dict转化成str格式,
json.dump() 是将 dict类型的数据转成str,并写入到json文件中
json.dumps() :
data = {
'name' : 'ACME',
'shares': 100,
'price': 542.23
}
json_str = json.dumps(data)
json.dump() :
dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
json.dump(dict,open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w'))
json.loads() 是将 str转化成dict格式。
json.load() 是从 json文件中读取数据。
json.loads() :
dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
dumps = json.dumps(dict)
loads = json.loads(dumps)
json.load() :
filename = (r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json')
jsObj = json.load(open(filename))
print(jsObj)
print(type(jsObj))
json.loads(json_str) json字符串str转换成字典
json.dumps(dict)字典转换成json字符串str
json.dumps()常用参数解释:
1)indent:应该是一个非负的整数,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白;
2)sort_keys:将数据根据keys的值进行排序
示例:
response = requests.post(url=url,headers=headers).json()
print(json.dumps(response,sort_keys=True,indent=4))
或者
from pprint import pprint
pprint(json_data)
import json
def store(data):
with open('data.json', 'w') as json_file:
json_file.write(json.dumps(data))
def load():
with open('data.json',‘r’) as json_file:
data = json.load(json_file)
return data
json.dumps()用于将dict类型的数据转成str
如果没有进行转换,直接写文件则会报错:TypeError:write() argument must be str,not dict
json.dump()用于将dict类型的数据转成str,并写入到json文件中
示例代码:
dict={“a”:”wo”,’b’:’zai’,“c”:”zhe”,”d”:”li”}
json.dump(dict,open(r”json.json”,”w”))
json.load()用于从json文件中读取数据
jsObj=json.load(open(r”json.json”))
notepad++可以安装json查看插件
MiTeC JSON Viewer is a free JSON viewer software, whichyou can use to load, view and edit multiple json files at a time. It hasan attractive and well organized interface which is fully loaded with variousoptions to view a file both in Tree and Text mode and youcan switchbetween them with Tree and Source options at the bottom of theinterface.
JSONView插件,可以直接查看服务器返回的json数据
json-handler插件,可以查看复制的json数据
Json Parser:
https://plugins.jetbrains.com/plugin/10650-json-parser/versions
拖动json文件到firefox浏览器中就可以直接查看
http://www.json.org.cn/tools/JSONEditorOnline/index.htm