python解析复杂json_Python 解析 json

python解析json文件#

什么是json文件

定义:(可以直接看官网:http://json.org/)

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

JSON 语法是 JavaScript 对象表示语法的子集。

基本数据格式:

对象,{key1:value2,key2:value2}

数组,[item1,item2,item3]

DEMO:javascript和python中的使用方法

最基本的key/value,单个

demo = {"key":"value"}

[js] -- demo.key

[python] -- demo["key"]

当多个的key/value时,应该如下表示:

demo = {"key1":"value1","key2":"value2","key3":"value3"}

[js] -- demo.key1

[python] -- demo["key1"]

当value不是单个值,是一串key/value

demo = {"key1":{"key11":"value11","key12":"value12","key13":"value13"}}

[js] -- demo.key1.key11

[python] -- demo["key1"]["key11"]

当value是数组

demo = {"key1":[{"key11":"value11","key12":"value12","key13":"value13"},{"key21":"value21","key22":"value22","key23":"value23"}]}

[js] -- demo.key1[1].key21

[python] -- demo["key1"][1]["key21"]

实际上JSON就是Python字典的字符串表示,但是字典作为一个复杂对象是无法直接转换成定义它的代码的字符串。python里面有一个simplesjon的库,可以方便的完成json的生成和解析。可以参考官网文档:http://simplejson.github.io/simplejson/

主要的函数

dump, 将python字典转化成json文件对象

dumps,将python字典转化成json字符串

load, 将json文件对象转为成python字典

loads,将json字符串转为python字典

使用的简单demo

$ cat test.json

{"key1":[{"key11":"value11","key12":"value12","key13":"value13"},{"key21":"value21","key22":"value22","key23":"value23"}]}

$ cat json.py

import simplejson as json

f = file("test.json")

s1 = json.load(f)

print s1["key1"][1]["key21"]

f.close

s2 = json.loads('{"key1":[{"key11":"value11","key12":"value12","key13":"value13"},{"key21":"value21","key22":"value22","key23":"value23"}]}')

print s2["key1"][1]["key21"]

$ python json.py

value21

value21

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值