2019独角兽企业重金招聘Python工程师标准>>>

简单请求

# 简单的请求响应
import urllib2response = urllib2.urlopen('http://www.baidu.com/')
html = response.read()
print html

import urllib2request = urllib2.Request('http://www.baidu.com/')
response = urllib2.urlopen(request)
html = response.read()
print html

JSON操作

JSON对象直接使用

其实就是dict

import jsonbody_value = {"name":"张三","data":{"cmdtype":"test","currpage":"0","pagesize":"10"}}
print json.dumps(body_value, ensure_ascii=False)

JSON未转义字符串在loads后使用

import jsonbody_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 jsonbody_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 jsonbody_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, "pagesize": 10}, "name": "张三"
}

发送JSON格式请求

import httplib
import jsondef 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

转载于:https://my.oschina.net/woooooody/blog/1154056

Python2.x自学笔记(一)——Json格式与请求相关推荐

  1. PHP中JSON格式接收请求方法以及对象值操作方法

    导航,芜湖~ 一.PHP中JSON格式接收方法 1. 两种方式区别与简介 (1)php://input 介绍 (2)$_POST和 $_GET介绍 (3)php://input 与 $_POST 的使 ...

  2. 扩展SpringMVC以支持绑定JSON格式的请求参数

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇:<扩展SpringMVC以支持更精准的数据绑定> 此方案是把请求参数(JSON字符串)绑定到java对象, ...

  3. loadrunner发送json_Loadrunner接口测试-发送JSON格式的请求

    昨天接到了一个测试接口的任务,接口的请求参数和返回结果均是JSON字符串,先是使用了函数web_submit_date,执行时报错,查询资料没找到原因,不知道是不是该函数不支持JSON串,有兴趣的可以 ...

  4. requests(一): 发送一个json格式的post请求

    今天给一位同学解决post发送数据格式为json格式的请求,顺便确认一下问题归属. 背景: 用postman工具发送一个数据格式为json的请求,得到了服务器的响应. 用python的requests ...

  5. Spring MVC--接收JSON格式的数据

    Spring mvc使用开源的Jackson包来处理JSON格式的请求或相应消息. index.jsp <%@ page language="java" contentTyp ...

  6. Spring Boot 2.x基础教程:如何扩展XML格式的请求和响应

    在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...

  7. JavaScript自学笔记(1)---表单验证,let和const,JSON文件

    今天开个JS自学笔记,本身JS的语法很简单,如果学过Java或者C系的都很容易,就不讨论了.主要是讨论实际应用的问题. 1.表单验证: a.html自动验证: HTML 表单验证可以通过浏览器来自动完 ...

  8. Spring MVC 学习笔记 json格式的输入和输出

    Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用 <!-- json --><depe ...

  9. SpringCloud工作笔记047---FastJson解析多级JSON_FastJson解析嵌套JSON_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    JAVA技术交流QQ群:170933152 解析嵌套json,这里说一下: //下面可以通过解析多级json的方式,获取数据,插入到数据库 //JSONObject userJsonObj = JSO ...

最新文章

  1. 获取ip地址解析归属地
  2. java objective-c,Objective-C基础教程学习笔记(附录)从Java转向Objective-C
  3. Spring Quartz 框架结构概述(一)[转]
  4. vi编辑器和系统分区
  5. spring加载bean的流程
  6. 给初学日语者的几点建议——词汇篇
  7. 冲刺倒计时,复习核心是什么?
  8. 关于win10更新的坑,头一次【这台电脑无法运行Windows10,我们无法跟新系统保留的部分】
  9. 一个人流浪,不必去远方
  10. OSPF配置及MD5验证
  11. 只需5秒,赶走阴冷寒风,迎来温暖热浪,云米对流电暖器体验
  12. 用Matlab把SMAP vegetation optical depth (VOD)数据转换成带投影信息EASE GRID2的tif文件
  13. 基于VRML的虚拟校园漫游系统源代码
  14. QQ是如何实现好友桌面快捷方式的?
  15. 解决java.util.LinkedHashMap cannot be cast to com.km.pojo.ItemCat问题
  16. RUNTIME / 微信公众号开发—主动向用户发送消息
  17. 基于复杂网络的大群体应急决策专家意见与信任信息融合方法及应用
  18. 用python打开文件夹的三种方式
  19. 利用GPU实时绘制水墨画效果
  20. ZigBee网络数据传递流程_物联网技术讲解:室内定位技术(WIFI、蓝牙BLE、Zigbee、UWB)...

热门文章

  1. html去掉父元素样式,CSS清除浮动使父级元素展开的三个方法
  2. 关于LocalBroadcastManager的介绍和优势
  3. ios 隔空投安装ipa_ipa文件能不能直接安装到手机上?怎么操作?
  4. aix系统服务器限制ftp访问,AIX 限制ftp用户只能访问其主目录
  5. 用JUnit框架实现Java单元测试
  6. JasperReport学习笔记2-创建简单的报表例子
  7. UWP 检测网络状态
  8. js 从一个函数中传递值到另一个函数
  9. Alltesting众测平台访谈录第一弹!
  10. NYOJ6——喷水装置(一)