📜  获取json数据python(1)

📅  最后修改于: 2023-12-03 15:27:48.611000             🧑  作者: Mango

获取json数据python

在Web应用开发中,获取JSON数据是常见的需求。Python提供了许多内置库和第三方库来帮助我们获取JSON数据。

内置库
json

Python中内置了json模块来处理JSON格式数据。其中,json.dumps()将Python对象转换为JSON字符串,json.loads()将JSON字符串转换为Python对象。

import json

# Python对象转换为JSON字符串
data = {'name': 'John', 'age': 30}
json_str = json.dumps(data)
print(json_str)

# JSON字符串转换为Python对象
data = json.loads(json_str)
print(data)
urllib

urllib是Python标准库之一,支持HTTP、HTTPS和FTP请求。我们可以使用urllib库中的urllib.request模块来获取JSON数据,并使用json模块进行解析。

import urllib.request
import json

url = 'https://api.github.com/users/octocat'
response = urllib.request.urlopen(url)
json_str = response.read().decode('utf-8')
data = json.loads(json_str)
print(data['login'])
第三方库
requests

requests是一个流行的HTTP库,也可以用于获取JSON数据。它支持HTTP协议的许多特性,如HTTP/1.1和HTTP/2、SSL、连接池、Cookies等。

import requests

url = 'https://api.github.com/users/octocat'
response = requests.get(url)
data = response.json()
print(data['login'])
aiohttp

aiohttp是一个基于asyncio的异步HTTP库,支持客户端和服务器端请求。它提供了与requests类似的API,但在异步上更出色。

import aiohttp
import asyncio
import json

async def main():
    url = 'https://api.github.com/users/octocat'
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            json_str = await response.text()
            data = json.loads(json_str)
            print(data['login'])

asyncio.run(main())
总结

无论是使用Python内置库还是第三方库,获取JSON数据都变得非常简单。这种能力越来越重要,因为现在大多数的API都返回JSON数据。