Python解析json文件相关知识学习

yipeiwu_com6年前Python基础

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

今天用python解析一个文本文件,格式如下:

[
{
"Key":"android.permission.ACCESS_CHECKIN_PROPERTIES",
"Title":"访问检入属性",
"Memo":"允许对检入服务上传的属性进行读/写访问。普通应用程序不能使用此权限。",
"Level":0
},
{
"Key":"android.permission.ACCESS_COARSE_LOCATION",
"Title":"大概位置",
"Memo":"访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。",
"Level":1
},
{
"Key":"android.permission.ACCESS_COARSE_LOCATION",
"Title":"大概位置",
"Memo":"访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。",
"Level":1
}
]

开始采用open('filepath').readlines()的方法读取,这样读取的内容都存取到一个列表中,但是我要取每一个{}中的内容取不到,于是考虑用split(',')的方法分离开来,结果把每一个{}里面的内容也根据","分开了。后来请教了网友,说用json方式读取。于是采用以下方式:

#-*-encoding:utf--*-
import json
f = file(r'C:\Users\Tim\Desktop\test.json')
jsonobj = json.load(f)
#列表用序号来查询
print jsonobj[]['Memo']
f.close

运行之后报以下错误:

ValueError: No JSON object could be decoded

重新将json文件以UTF8无BOM方式保存了一下,运行成功了。

另外,对于读取json string可以用以下方式:

s = json.loads('{"name":"test", "type":{"name":"seq", "parameter":["", ""]}}')
print s
print s.keys()
print s["name"]
print s["type"]["name"]
print s["type"]["parameter"][]

以上内容给大家介绍了Python解析json文件相关知识,希望对大家有所帮助!

相关文章

Python函数式编程指南(四):生成器详解

4. 生成器(generator) 4.1. 生成器简介 首先请确信,生成器就是一种迭代器。生成器拥有next方法并且行为与迭代器完全相同,这意味着生成器也可以用于Python的for循...

Python实现的自定义多线程多进程类示例

本文实例讲述了Python实现的自定义多线程多进程类。分享给大家供大家参考,具体如下: 最近经常使用到对大量文件进行操作的程序以前每次写的时候都要在函数中再写一个多线程多进程的函数,做了...

python实现2048小游戏

python实现2048小游戏

2048的python实现。修改自某网友的代码,解决了原网友版本的两个小bug: 1. 原版游戏每次只消除一次,而不是递归消除。如 [2 ,2 ,2 ,2] 左移动的话应该是 [4,...

Python程序员开发中常犯的10个错误

Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库。与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块。   在平时的工作中,Python开发...

python实现一组典型数据格式转换

python实现一组典型数据格式转换

本文实例为大家分享了一组典型数据格式转换的python实现代码,供大家参考,具体内容如下 有一组源数据,第一行会是个日期数据,第二行标明字段,再接下来是两行数据行。 1018 14:3...