Python2.x自学笔记(一)——Json格式与请求
2017-07-04 00:00
239 查看
简单请求
# 简单的请求响应 import urllib2 response = urllib2.urlopen('http://www.baidu.com/') html = response.read() print html
或
import urllib2 request = urllib2.Request('http://www.baidu.com/') response = urllib2.urlopen(request) html = response.read() print html
JSON操作
JSON对象直接使用
其实就是dictimport json body_value = {"name":"张三","data":{"cmdtype":"test","currpage":"0","pagesize":"10"}} print json.dumps(body_value, ensure_ascii=False)
JSON未转义字符串在loads后使用
import json body_value = '{"name":"张三","data":{"cmdtype":"test","currpage":"0","pagesize":"10"}}' decoded = json.loads(body_value) print 'name:',decoded['name'] print 'data.cmdtype:',decoded['data']['cmdtype'] print json.dumps(decoded, ensure_ascii=False)
结果为:
name: 张三 data.cmdtype: test {"data": {"currpage": "0", "pagesize": "10", "cmdtype": "test"}, "name": "张三"}
ensure_ascii=False不加的话,中文不会被显示正确
在dumps()中添加indent=4后,可格式化json:
print json.dumps(decoded, ensure_ascii=False, indent=4)
{ "data": { "currpage": "0", "pagesize": "10", "cmdtype": "test" }, "name": "张三" }
在dumps()中添加sort_keys=True后,可将JSON属性排序:
print json.dumps(decoded, indent=4, sort_keys=True, ensure_ascii=False)
{ "data": { "cmdtype": "test", "currpage": "0", "pagesize": "10" }, "name": "张三" }
JSON有转义字符的字符串在loads后使用
import json body_value = ''' { "name":"张三", "data":{ \"cmdtype\":\"test\", \"currpage\":0, \"pagesize\":10 } } ''' decoded = json.loads(body_value) print decoded.keys() print json.dumps(decoded, sort_keys=True, ensure_ascii=False, indent=4)
结果:
[u'data', u'name'] { "data": { "cmdtype": "test", "currpage": 0, "pagesize": 10 }, "name": "张三" }
json.loads与eval的区别
import json body_value = "{\"name\":\"张三\",\"data\":{\"cmdtype\":\"test\",\"currpage\":0,\"pagesize\":10}}" decoded = eval(body_value) print decoded.keys() print json.dumps(decoded, sort_keys=True, ensure_ascii=False, indent=4) decoded = json.loads(body_value) print decoded.keys() print json.dumps(decoded, sort_keys=True, ensure_ascii=False, indent=4)
结果:
['data', 'name'] { "data": { "cmdtype": "test", "currpage": 0, "pagesize": 10 }, "name": "张三" } [u'data', u'name'] { "data": { "cmdtype": "test", "currpage": 0, 3ff0 "pagesize": 10 }, "name": "张三" }
发送JSON格式请求
import httplib import json def http_post(): requrl = 'http://localhost:8999/query/normal' headerdata = {"Content-type": "application/json"} body_value = {"name":"张三","data":{"cmdtype":"test","currpage":"0","pagesize":"10"}} conn = httplib.HTTPConnection("localhost", 8999) conn.request('POST', requrl, json.dumps(body_value), headerdata) response = conn.getresponse() return response.read() data = http_post() print data
相关文章推荐
- python构造json格式的post请求访问flask server
- python练习:请求链接,得到JSON格式返回,分析数据
- 【学习笔记】python读取json内容转换成excel格式
- php学习笔记(三十)ajax请求和接收参数的实现方式(包括json数据格式的简单处理)
- python任务-从文件读取参数来发送json格式的post请求,再讲请求结果保存到文档里
- Spring MVC 学习笔记 九 json格式的输入和输出
- IOS请求php返回的数据JSON数据无法正确解析 utf-8格式
- Python自学笔记(一)(Python基础知识)
- struts1 采用json格式发送异步请求,并且获取action处理后的json数据
- 简明python教程自学笔记(2)
- python使用json格式进行数据封装
- struts1 采用json格式发送异步请求,并且获取action处理后的json数据 .
- Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
- Spring MVC 学习笔记 九 json格式的输入和输出
- python使用json格式进行数据封装
- python将json格式数据转换为insert into语句导入mysql数据库
- python——使用yaml数据格式,PK --> XML,JSON
- 在ajax请求中使用json数据格式
- python 3.2 html.parserde 自学笔记
- python——使用yaml数据格式,PK --> XML,JSON