Json格式中的花括号和中括号理解
花括号 { } 括起来的数据是一个对象。
中括号[ ] 括起来的数据们是一个数组。
如何能知道你的json数据是不是合法的?使用这个在线工具检验一下就可以
http://www.bejson.com/
简单看看这个json数据。
{
"obj1":
{
"name":"name1",
"age":"11",
"like":"like",
"files":
[
"file1":"hello",
"file2",
{
"subfile":"file3",
"subfile1":"file4"
}
],
"cmds":
[
"cmd1",
"cmd2",
"cmd3"
]
},
"obj2":
{
"name":"name2",
"age":"12",
"like":"like",
"files":
[
"file1",
"file2"
]
}
}
首先先看清你看到的是一个对象还是一个数组。
obj1 和 obj2 就是对象。
而对象中的files 和 cmds 就是数组。
对象中的元素可以使用 “key” : “value” 这样的格式写,但是数组中的不行,数组中的可以是直接一个字符串,也可以是一个对象。
使用 python 访问 json 格式的方法
#-*-coding:utf-8 -*-
import os
import sys
import json
with open("./test.json",'r') as json_file:
json_text=json_file.read();
json_data = json.loads(json_text);
#经过loads函数之后,数组变成了python中的列表,对象对应到python中的字典
#访问 obj1
print(json_data['obj1']);
#访问 obj1 下的 files 数组
print(json_data['obj1']['files']);
#访问 obj1 下的 files 数组 的第三个 对象
print(json_data['obj1']['files'][2]);
#访问 obj1 下 的 files 数组的 第三个 对象中的 subfile元素
print(json_data['obj1']['files'][2]['subfile']);
#访问 obj2 下的 files 数组的 第一个元素
print(json_data['obj2']['files'][0])