目标
- 学习如何使用 OpenAI API 生成结构化数据(如 JSON、CSV 格式)。
- 掌握解析数据并导出表格文件的技巧,以便适用于不同实际场景。
场景背景
假设你是一名开发人员,需要快速生成一批产品信息列表(如名称、价格、描述),并将这些信息导出为 CSV 文件供其他系统使用。
一、生成结构化数据(JSON 格式)
代码示例:生成产品信息列表
import openai
import json# 设置 API 密钥
openai.api_key = "Your_API_Key"# 定义 API 请求参数
prompt = """
Generate a list of 5 products with the following attributes:
- Product Name
- Price (in USD)
- Short Description
Return the result as a JSON array.
"""# 调用 OpenAI API
response = openai.ChatCompletion.create(model="gpt-4",messages=[{"role": "user", "content": prompt}],max_tokens=300,temperature=0.5
)# 解析生成结果
generated_text = response['choices'][0]['message']['content']try:product_data = json.loads(generated_text)if isinstance(product_data, dict):product_data = [product_data]print("Parsed Data:", product_data)
except json.JSONDecodeError:print("Failed to parse JSON. Check API response format.")
代码说明
- 模型选择:使用 gpt-4 生成高质量、结构化的产品数据。
- 请求内容
prompt
:要求返回 JSON 数组以降低解析出错的可能性。 - 解析数据
json.loads()
:将返回的 JSON 字符串转换为 Python 列表格式。
输出示例
[{"Product Name": "Smartphone X10","Price": 499,"Short Description": "A powerful smartphone with advanced features."},{"Product Name": "Wireless Earbuds Z","Price": 79,"Short Description": "High-quality sound with noise cancellation."},...
]
二、导出数据到 CSV 文件
代码示例:导出生成数据为 CSV 文件
# 确保数据为列表格式
if isinstance(product_data, list):with open("products.csv", "w", newline="") as file:writer = csv.DictWriter(file, fieldnames=["Product Name", "Price", "Short Description"])writer.writeheader()writer.writerows(product_data)print("Data successfully saved to products.csv")
else:print("No valid data to save.")
代码说明
csv.DictWriter()
:将字典格式数据写入 CSV 文件。writer.writeheader()
:写入表头。writer.writerows()
:写入数据行。
三、实际应用案例
1. 数据自动生成
- 市场营销:批量生成商品描述以加快推广文案输出。
- 数据分析:生成模拟数据进行测试和建模。
2. 数据导出与分析
- 自动生成客户报告并导出为 Excel/CSV 格式。
- 将表格数据上传到数据库进行分析。
小结
- 通过 OpenAI 生成结构化数据(如 JSON 格式)可以显著提高数据处理效率。
- 解析生成结果并导出为 CSV 文件是实现数据自动化的重要环节。
练习题
- 生成订单数据:使用 OpenAI API 生成包含订单编号、商品名称、数量和总价的订单信息。
- 导出 Excel 文件:将生成的订单数据保存为 Excel 文件(可使用
pandas
库)。 - 增强提示词:尝试优化
prompt
以生成更丰富的产品数据,例如增加Category
和Stock Availability
字段。