# cURL 转 Python (requests)

将 cURL 命令转换为 Python requests 代码片段，包含请求头、数据和请求方法

> 标准页面: https://elysiatools.com/zh/tools/curl-to-python

- **分类:** Development

- **关键词:** curl, 转换, python, requests, http, api, 代码生成

## 概述

本工具可快速将 cURL 命令行指令转换为标准的 Python requests 代码片段。它能自动解析 HTTP 方法、请求头、查询参数以及请求体数据，并支持格式化请求体和添加代码注释，帮助开发者快速在 Python 脚本中复现网络请求。

## 输入项

- **cURL 命令** (textarea): curl -X POST https://api.example.com/users \ -H "Content-Type: application/json" \ -d '{"name":"Alice"}'
- **格式化请求体** (checkbox)
- **包含注释** (checkbox)

## 适用场景

- 从浏览器开发者工具（DevTools）复制了 cURL 请求，需要将其快速转化为 Python 爬虫或脚本代码时。
- 在阅读第三方 API 文档时，需要将官方提供的 cURL 示例代码转换为 Python requests 调用代码。
- 调试接口时，需要将复杂的命令行 cURL 请求快速整理为可维护的 Python 自动化测试脚本。

## 工作原理

- 在输入框中粘贴您需要转换的 cURL 命令行指令。
- 根据需要勾选“格式化请求体”以美化 JSON 数据，或勾选“包含注释”以生成代码说明。
- 工具将自动解析 cURL 参数，并即时生成对应的 Python requests 代码片段供您复制使用。

## 使用案例

- API 接口快速对接：将 API 文档中的 cURL 示例一键转换为 Python 代码，加速开发对接流程。
- 网络爬虫脚本编写：从浏览器复制网络请求的 cURL 格式，直接生成 Python 爬虫请求代码，保留所有 Cookie 和 Headers。
- 接口自动化测试：将手动测试的 cURL 命令批量转换为 Python requests 测试脚本，便于集成到自动化测试流程中。

## 常见问题

### 这个工具支持哪些 HTTP 请求方法？

支持 GET、POST、PUT、DELETE、PATCH 等常见的 HTTP 请求方法，工具会自动解析 -X 或 --request 参数。

### 复杂的 JSON 请求体和 Form 表单数据能正确转换吗？

可以。工具会自动解析 -d、--data 或 --data-raw 中的数据，并将其转换为 Python 字典格式传递给 json 或 data 参数。

### 转换后的代码需要安装额外的 Python 库吗？

需要安装 requests 库。您可以通过运行 pip install requests 来安装它。

### “格式化请求体”选项有什么作用？

勾选后，工具会将 cURL 中压缩在一行的 JSON 数据格式化为带缩进的多行 Python 字典，提高代码可读性。

### 敏感的请求头（如 Authorization 或 Cookie）会被保留吗？

会的。所有通过 -H 或 --header 传入的请求头都会被完整保留并转换为 Python headers 字典。

## 相关工具

- [cURL 转 Go (net/http)](https://elysiatools.com/zh/tools/curl-to-go): 将 cURL 命令转换为 Go net/http 代码片段，包含 http.NewRequest、请求头和请求体
- [cURL 转 JavaScript (axios)](https://elysiatools.com/zh/tools/curl-to-js-axios): 将 cURL 命令转换为 JavaScript axios 代码片段，使用配置对象、请求头和数据
- [cURL 转 JavaScript (fetch)](https://elysiatools.com/zh/tools/curl-to-js-fetch): 将 cURL 命令转换为 JavaScript fetch() 代码片段，包含请求头、请求体和方法
- [cURL 转 PHP (cURL)](https://elysiatools.com/zh/tools/curl-to-php): 将 cURL 命令转换为 PHP cURL 代码片段，包含 curl_setopt、请求头和 POST 字段
- [API 契约压力测试器](https://elysiatools.com/zh/tools/api-contract-stress-tester): 根据 OpenAPI 3.x 规范批量生成边界值测试请求，并可选发送到真实后端以发现契约不一致。
- [Cron 表达式解释器](https://elysiatools.com/zh/tools/cron-expression-explainer): 解析 5 段 / 6 段 / Quartz cron 表达式为自然语言调度描述，按字段拆解，并按任意 IANA 时区列出接下来 N 次执行时间，附带 AI 生成的本地化自然语言解释
- [Tailwind 色板同步器](https://elysiatools.com/zh/tools/tailwind-color-palette-sync): 输入一组 HEX,选择命名规则(色阶 50–950 / 单名 / 对象嵌套),自动生成 tailwind.config.ts 的 theme.extend.colors 片段,每个色阶同时给出 WCAG AA/AAA 对比等级,可选暗色模式。
- [cURL 命令转 HAR 转换器](https://elysiatools.com/zh/tools/curl-to-har-converter): 将 cURL 命令转换为可移植的 HAR 1.2 请求条目。

## 示例

- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Web Python 文件操作示例](https://elysiatools.com/zh/samples/web-file-operations-python): Web Python 文件操作示例，包括文本文件读写、文件复制移动、目录遍历和文件验证
- [Web Python 网络编程示例](https://elysiatools.com/zh/samples/web-networking-python): Web Python 网络编程示例，包括HTTP请求、HTTP服务器和TCP套接字编程
- [Web3.py Python 库](https://elysiatools.com/zh/samples/web3py-samples): Web3.py Python 库示例，包括区块链交互、智能合约、钱包管理、交易和去中心化应用开发

## 相关内容

- [cURL 请求转换与 HTTP 测试工作流](https://elysiatools.com/zh/hubs/curl-to-code-converter): 将 cURL 请求转换为代码片段或 HAR，安全测试请求，并结合响应上下文解释 HTTP 状态码，同时保留请求头、请求体和认证注意事项。
- [API 请求格式检查、重放准备与调试工具](https://elysiatools.com/zh/hubs/api-request-replay-and-debugging): 检查请求结构，准备本地重放，对比响应并定位 API 调试线索。工具只做本地分析或生成，不能代替真实鉴权和服务端测试。
