当前位置:首页 > 科技  > 软件

揭秘Python中的JSON数据格式与Requests模块

来源: 责编: 时间:2024-04-15 18:11:02 301观看
导读引言:JSON数据格式和Requests模块在现代编程中扮演着不可或缺的角色。JSON作为一种轻量级的数据交换格式,广泛应用于Web服务之间的数据传输;而Requests库则是Python中最流行的HTTP客户端库,用于发起HTTP请求并与服务器交

引言:

0NS28资讯网——每日最新资讯28at.com

JSON数据格式和Requests模块在现代编程中扮演着不可或缺的角色。JSON作为一种轻量级的数据交换格式,广泛应用于Web服务之间的数据传输;而Requests库则是Python中最流行的HTTP客户端库,用于发起HTTP请求并与服务器交互。今天,我们将通过10个精选的代码示例,一同深入了解这两个重要工具的使用。0NS28资讯网——每日最新资讯28at.com

1.创建并解析JSON数据

import json# 创建JSON数据data = {    "name": "John",    "age": 30,    "city": "New York"}json_data = json.dumps(data)  # 将Python对象转换为JSON字符串print(json_data)  # 输出:{"name": "John", "age": 30, "city": "New York"}# 解析JSON数据json_string = '{"name": "Jane", "age": 28, "city": "San Francisco"}'parsed_data = json.loads(json_string)  # 将JSON字符串转换为Python字典print(parsed_data)  # 输出:{'name': 'Jane', 'age': 28, 'city': 'San Francisco'}

2.使用Requests发送GET请求0NS28资讯网——每日最新资讯28at.com

import requestsresponse = requests.get('https://api.github.com')print(response.status_code)  # 输出HTTP状态码,如:200print(response.json())  # 输出响应体内容(假设响应是JSON格式)# 保存完整的响应信息with open('github_response.json', 'w') as f:    json.dump(response.json(), f)

3.发送带参数的GET请求

params = {'q': 'Python requests', 'sort': 'stars'}response = requests.get('https://api.github.com/search/repositories', params=params)repos = response.json()['items']for repo in repos[:5]:  # 打印前5个搜索结果    print(repo['full_name'])

4.发送POST请求

payload = {'key1': 'value1', 'key2': 'value2'}headers = {'Content-Type': 'application/json'}response = requests.post('http://httpbin.org/post', jsnotallow=payload, headers=headers)print(response.json())

5.设置超时时间

requests.get('http://example.com', timeout=5)  # 设置超时时间为5秒

6.处理Cookies

# 保存cookiesresponse = requests.get('http://example.com')cookies = response.cookies# 发送带有cookies的请求requests.get('http://example.com', cookies=cookies)

7.自定义HTTP头部信息

headers = {'User-Agent': 'My-Custom-UA'}response = requests.get('http://httpbin.org/headers', headers=headers)print(response.text)

8.下载文件

url = 'https://example.com/image.jpg'response = requests.get(url)# 写入本地文件with open('image.jpg', 'wb') as f:    f.write(response.content)

9.处理身份验证

from requests.auth import HTTPBasicAuthresponse = requests.get('https://example.com/api', auth=HTTPBasicAuth('username', 'password'))

10.重试机制

from requests.adapters import HTTPAdapterfrom requests.packages.urllib3.util.retry import Retry# 创建一个重试策略retry_strategy = Retry(    total=3,    status_forcelist=[429, 500, 502, 503, 504],    backoff_factor=1,)# 添加重试策略到适配器adapter = HTTPAdapter(max_retries=retry_strategy)# 将适配器添加到会话session = requests.Session()session.mount('http://', adapter)session.mount('https://', adapter)response = session.get('https://example.com')

结语:

通过上述10个Python中JSON数据格式与Requests模块的实战示例,相信您对它们的使用有了更为深入的理解。熟练掌握这两种工具将极大提升您在Web开发、API调用等方面的生产力。请持续关注我们的公众号,获取更多Python和其他编程主题的精彩内容!0NS28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-83616-0.html揭秘Python中的JSON数据格式与Requests模块

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: C# 中的 HTTP 请求

下一篇: C++中的显式虚函数重载:override与final详解

标签:
  • 热门焦点
  • K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • 一文看懂为苹果Vision Pro开发应用程序

    译者 | 布加迪审校 | 重楼苹果的Vision Pro是一款混合现实(MR)头戴设备。Vision Pro结合了虚拟现实(VR)和增强现实(AR)的沉浸感。其高分辨率显示屏、先进的传感器和强大的处理能力
  • Golang 中的 io 包详解:组合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是对Reader和Writer接口的组合,
  • 签约井川里予、何丹彤,单视频点赞近千万,MCN黑马永恒文希快速崛起!

    来源:视听观察永恒文希传媒作为一家MCN公司,说起它的名字来,可能大家会觉得有点儿陌生,但是说出来下面一串的名字之后,或许大家就会感到震惊,原来这么多网红,都签约这家公司了。根
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • iQOO Neo8 Pro评测:旗舰双芯加持 最强性能游戏旗舰

    【Techweb评测】去年10月,iQOO推出了一款Neo7手机,该机搭载了联发科天玑9000+,配备独显芯片Pro+,带来了同价位段最佳的游戏体验,一经上市便受到了诸多用
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
Top