Chinaunix首页 | 论坛 | 博客
  • 博客访问: 231200
  • 博文数量: 57
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 557
  • 用 户 组: 普通用户
  • 注册时间: 2015-10-01 18:05
文章分类

全部博文(57)

文章存档

2017年(57)

我的朋友

分类: Python/Ruby

2017-11-13 11:48:27

JSON: JavaScript Object Notation(JavaScript 对象表示法)

JSON 是一种轻量级的数据交换格式。类似 XML,但是JSON 比 XML 更小、更快,更易解析。
JSON最广泛的应用是作为AJAX中web服务器和客户端的通讯数据公司,现在叶常用于http请求中。
Encode过程,是把python对象转换成json对象的一个过程,常用的两个函数是dumps和dump函数
1.json.dump()

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-11-13 14:28
  5. # @file :json1.py


  6. import json

  7. jsondata = "{'a':1,'b':2,'c':3,'d':4,'e':5}"
  8. f = open('a.txt','w')
  9. json.dump(jsondata,f)
  10. f.close
执行结果:
a.txt
"{'a':1,'b':2,'c':3,'d':4,'e':5}"
2.json.dumps()

点击(此处)折叠或打开

  1. In [1]: import json

  2. In [2]: data = {"name" : "kate", "age" : 22}

  3. In [3]: in_json = json.dumps(data)

  4. In [4]: in_json
  5. Out[4]: '{"age": 22, "name": "kate"}'
data是一个python数据字典,最后通过json.dumps()把data转换成字符串的形式。
区别:dump把python对象转换成json对象生成一个fp的文件流,而dumps则是生成了一个字符串:

点击(此处)折叠或打开

  1. In [5]: dic1 = {'type':'dic1','username':'loleina','age':16}

  2. In [6]: json_dic1 = json.dumps(dic1)

  3. In [7]: print json_dic1
  4. {"username": "loleina", "age": 16, "type": "dic1"}

  5. In [8]: json_dic2 = json.dumps(dic1,sort_keys=True,indent =4,separators=(',', ': '),encoding="gbk",ensure_ascii=True )

  6. In [9]: print json_dic2
  7. {
  8.     "age": 16,
  9.     "type": "dic1",
  10.     "username": "loleina"
  11. }
Decode过程,是把json对象转换成python对象的一个过程,常用的两个函数是loads和load函数。区别跟dump和dumps是一样的。

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-11-13 15:14
  5. # @file :json2.py
  6. import json


  7. # 将python对象test转换json对象
  8. test = [{"username":"卡通","age":26},(2,3),1]
  9. print type(test)
  10. python_to_json = json.dumps(test,ensure_ascii=False)
  11. print python_to_json
  12. print type(python_to_json)

  13. # 将json对象转换成python对象
  14. json_to_python = json.loads(python_to_json)
  15. print json_to_python
  16. print type(json_to_python)
执行结果:

从上面2个例子的测试结果可以看到,python的一些基本类型通过encode之后,tuple类型就转成了list类型了,再将其转回为
python对象时,list类型也并没有转回成tuple类型,而且编码格式也发生了变化,变成了Unicode编码。具体转化时,类型变化
规则如下所示:


将一个JSON字典转换为一个Python对象Python

点击(此处)折叠或打开

  1. In [20]: import json

  2. In [21]: data = '{"a":"A","b":[2,4],"c":3.0}'

  3. In [22]: aa = json.loads(data)

  4. In [23]: print aa
  5. {u'a': u'A', u'c': 3.0, u'b': [2, 4]}




阅读(1286) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~