Python下关于JSON的一些事儿
2015-10-24 15:34
661 查看
JSON的两种结构
对象{ key1 : value1, key2 : value2 ...... }
数组
[ { key1 : value1 ...... }, { key2 : value2 ...... } ]
普通字符串, JSON字符串, JSON对象的区别
普通字符串str = ’ this is string ’
或
str = ” this is string “
JSON字符串
jsonStr = ” { ’ name ’ : ’ James ’ , ’ age ’ : 30 } “
JSON对象
jsonObj = { “name” : “James” , “age” : 30}
注: Json字符串仅仅是一个字符串, 一个整体. 需要先将Json字符串转化为Json对象,再提取其存储的数据
处理Json数据
将整个Json文件传入如果直接使用如下代码
data = json.loads(open("output.json").read())
会遇到ValueError:Extra data错误, 说是多个Json对象的问题, 因为在一个Json文件中肯定包含多个Json对象.
因此, 我们需要将代码修改为如下形式:
data = [] for line in open("output.json"): line = line.strip('\n') data.append(json.loads(line))
OK, 这样就能解决了.
注: json.loads()传入的参数需要是Json字符串, 我一行一行的读入, 传入的是Json字符串, 最后存储到一个list中.
将数据写入到Json文件
需要特别注意的是, 由于Python会默认把字符串转化为单引号’ ‘, 但是Json文件不支持单引号, 只能存储双引号” “. 因此, 我们需要用dumps()方法进行转化:info={} info["code"] = 1 info["id"] = 1900 info["name"] = "smith" info["sex"] = "man" print 'before dumps:', info >>>before dumps: {'code': 1, 'sex': 'man', 'id': 1900, 'name': 'smith'} str = json.dumps(info) print 'after dumps:', str >>>after dumps: {"code": 1, "sex": "man", "id": 1900, "name": "smith"}
相关文章推荐
- leetcode之Set Matrix Zeroes
- What does the yield keyword do in Python?
- python 自动登录网站
- python socket编程
- Python机器学习库scikit-learn实践
- Python - 基础知识 - 条件判断
- python socket编程详细介绍
- Python repr() 或str() 函数
- Python内置的字符串处理函数整理
- 使用IronPython给.Net程序加点料
- Python if elif else语句
- Python科学计算库演示
- Python __name__ == '__main__' 介绍
- 为Python配置Vim编辑器(GUI/非GUI皆可)
- Python时间戳和日期的相互转换
- 用python获取气象数据开放平台信息
- python numpy.shape 和 numpy.reshape函数
- python numpy.shape 和 numpy.reshape函数
- [PYTHON]-用Scrapy爬虫遍历百度贴吧,本地保存文字版【PART 2】
- 分分钟学会一门语言之Python篇