今天在观察python脚本的时候,看到了python解析jason数据这么一段。
经过相关查找,终于弄清楚了python是怎么解析jason结构,取得数据的。
我们通过以下命令:
target = urlopen(url, 'utf8')
try:
target = json.loads(target)
except:
print 'load json error!!'
取得了这么一段jason数据:
{
"title": "报表",
"tables": {
"example1": {
"id": "first",
"values": [
{
"key": "one",
"value": "1234"
},
{
"key": "two",
"value": "12345"
},
{
"key": "three",
"value": "123456"
},
]
},
"example2": {
"id": "second",
"values": [
{
"key": "four",
"value": "321"
},
{
"key": "five",
"value": "4321"
},
},
}
}
我们应该如何拿到里面的数据呢?比如说拿到key为“three”,value为“123456”的值,那么我们可以这样获取数据:
get_value = target['tables']['example1']['values'][2]['value']
首先,需要理解jason的结构:
写道
JSON建构于两种结构:
“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
写道
JSON具有以下这些形式:
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
而python会把对应的jason结构翻译过来,对应的关系如下:
JSON
Python
object |
dict |
array |
list |
string |
unicode |
number (int) |
int, long |
number (real) |
float |
true |
True |
false |
False |
null |
None |
所以我们使用 get_value = target['tables']['example1']['values'][2]['value'] 就可以得到“123456”这个值。
同理,使用 get_value = target['tables']['example2']['values'][0]['key']就可以得到“four”这个值了。
本文只是简单的分析,并没有深入研究,
待到对python的学习再深入一点再回头来看看,应该会有很大的改进!
:)
参考:http://www.json.org/json-zh.html
http://docs.python.org/library/json.html
- 大小: 4.3 KB
- 大小: 3.6 KB
- 大小: 6.5 KB
分享到:
相关推荐
本程序利用Python读取SA气象雷达数据,并绘制回波图。具有较好的效果
python 和 C语言进行网络通信,而C语言经常是采用struct ,所以和python交互需要进行解析和重构struct,因此python 实现struct模块,文档右举例和使用方法,让你快速上手。
TLV解析工具 使用命令 python getTlVData.py pcap文件路径; 可以直接解析wireshark 抓包的工具
python解析xmind工具,可将xmind文件内容解析成所需的数据类型(dict、json、xml),同时还可将展示结果配置化
Python解析cdd 文件 和 批量删除CANoe工程cbf文件
python解析flv文件库,内含详细注释介绍flv文件结构及解析原理
python解析xml文件,python语言解析xml文件的常用的有两种方式: 通过MiniDom库解析xml文件 通过ElementTree库解析xml文件
dateparser-python 解析可读的日期
基于Python的对 汽车电子ECU的通信矩阵数据库文件(.dbc)的解析 将DBC转化为程序识别代码。让你的自动化,批量信号,报文测试,成为可能
python解析excel数据成proto、idl或者struct格式
Deep learning with python by Jason brownlee.zip Jason Brownlee 的 Python 深度学习课程代码 Code
python 解析 DDL 操作 PDM
python解析html的几种方法,lxml,xpath,htmlparser,SGMLParser等操作
最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便。乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用。 ply使用 简介 如果你不是从事...
ptpython:高级交互式Python解析器
python解析hdfs文件内容生成本地文件、及相关插件包安装实现方式
通过Python3获取通达信交易数据,需更改TDX软件安装路径
OpenResty/Lua的简单multipart数据解析器
XGBoost with Python by Jason Brownlee 课程代码 Code
pcaps便是解析后的类似结构体的东西了 <pre name=code class=python>packet=pcaps[0] #第1个数据包结构 packet.time#数据包时间戳 packet[Raw].load#PY3读取节点数据方法,packet[IP].src;pac