json格式概述

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中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构

  1. 对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
  2. 数组:数组在js中是中括号“[]”括起来的内容,数据结构为 [“java”,"javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是数字、字符串、数组、对象几种。

经过对象、数组2种结构就可以组合成复杂的数据结构了.

在python,一个Json对象读进来之后就变成了dict对象类型。

json格式示例

对象值能够替换为对象和数组

数组值能够替换为对象和数组

Json整体:{整体内容}

对象:{对象部分}

数组:[数组部分]

属性:直接使用

举例如下:




JSON文件 结构 生成树形表 python python构造json数组_json


dumps和dump的区别

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'))

loads和load的区别

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与dict相互转换

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)

Python读写Json文件

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

python中一句话读写json文件

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”))

json工具

软件notepad++

notepad++可以安装json查看插件

软件MiTeC JSON Viewer

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

chrome插件

JSONView插件,可以直接查看服务器返回的json数据

json-handler插件,可以查看复制的json数据

pycharm插件

Json Parser:

https://plugins.jetbrains.com/plugin/10650-json-parser/versions

firefox

拖动json文件到firefox浏览器中就可以直接查看

在线

http://www.json.org.cn/tools/JSONEditorOnline/index.htm