python - 如何使用 Python 将 API 响应保存到 csv
问题描述
我以这种形式从 API 获取人脸检测数据:
{"id":1,"ageMin":0,"ageMax":100,"faceConfidence":66.72220611572266,"emotion":"ANGRY","emotionConfidence":50.0'
b'2540969848633,"eyeglasses":false,"eyeglassesConfidence":50.38102722167969,"eyesOpen":true,"eyesOpenConfidence":50.20328140258789'
b',"gender":"Male","genderConfidence":50.462989807128906,"smile":false,"smileConfidence":50.15522384643555,"sunglasses":false,"sun'
b'glassesConfidence":50.446510314941406}]'
我想将其保存到这样的 csv 文件中:
id ageMin ageMax faceConfidence
1 0 100 66
... 等等。我试着这样做:
response = requests.get(url, headers=headers)
with open('detections.csv', 'w') as f:
writer = csv.writer(f)
for item in response:
writer.writerow(str(item))
这将每个字符都放在自己的单元格中。我也尝试过使用item.id
,但这给出了一个错误:AttributeError: 'bytes' object has no attribute 'id'
。
有人能指出我正确的方向吗?
解决方案
您可以使用 pandas 和 json 库相对轻松地做到这一点。
import pandas as pd
import json
response = """{
"id": 1,
"ageMin": 0,
"ageMax": 100,
"faceConfidence": 66.72220611572266,
"emotion": "ANGRY",
"emotionConfidence": 50.0,
"eyeglasses": false,
"eyeglassesConfidence": 50.38102722167969,
"eyesOpen": true,
"eyesOpenConfidence": 50.20328140258789,
"gender": "Male",
"genderConfidence": 50.462989807128906,
"smile": false,
"smileConfidence": 50.15522384643555,
"sunglasses": false,
"glassesConfidence":50.446510314941406
}"""
file = json.loads(doc)
json = pd.DataFrame({"data": file})
json.to_csv("response.csv")
这是格式化为 csv 的响应。
,data
ageMax,100
ageMin,0
emotion,ANGRY
emotionConfidence,50.0
eyeglasses,False
eyeglassesConfidence,50.38102722167969
eyesOpen,True
eyesOpenConfidence,50.20328140258789
faceConfidence,66.72220611572266
gender,Male
genderConfidence,50.462989807128906
glassesConfidence,50.446510314941406
id,1
smile,False
smileConfidence,50.15522384643555
sunglasses,False
推荐阅读
- angular - 是否可以访问单个 ag-grid 列标题以在它们上实现: on-mouseover="method_name()" ?
- java - 实现构建器模式时无法将字符串转换为构建器类错误
- c++ - 我想将使用 VTK、C++ 和 QT 开发的桌面应用程序移植到 Web 应用程序
- android - Gradle 5.x - 将我的库发布到 Maven Local 时出错
- rest - 如何使用 REST API 创建托管元数据列?
- java - 有没有办法将归档 logback 的 .gz 日志文件存储在单独的文件夹中?
- linux - 无法使用 VS Code 编辑器将文件写入 /var/www/html
- clojure - 对集合提前终止的迭代
- tensorflow - 如何在不增加输入大小的情况下使用 Faster RCNN 检测小物体?
- sql - 选择在 VARCHAR 列中只有数字的记录