从 API 到 CSV 的数据帧

问题描述 投票:0回答:2

我正在使用 python 并尝试将数据从 API 导出到 csv

import requests
import pandas as pd


url = "https://api.bexio.com/2.0/article"
#r = requests.get('https://api.bexio.com/2.0/article')
headers = {
'Accept': "application/json",
'Content-Type': "application/json",
'Authorization': "Bearer xxx}

效果很好。

  [{"id":34,"user_id":1,"article_type_id":1,"contact_id":null,"deliverer_code":"","deliverer_name":"","deliverer_description":"","intern_code":"TEXLINE-SOLD","intern_name":"TEXLINE Sold out","intern_description":"","purchase_price":"0.900000","sale_price":"2.450000","purchase_total":null,"sale_total":null,"currency_id":1,"tax_income_id":16,"tax_id":16,"tax_expense_id":22,"unit_id":1,"is_stock":true,"stock_id":null,"stock_place_id":null,"stock_nr":0,"stock_min_nr":0,"stock_reserved_nr":0,"stock_available_nr":0,"stock_picked_nr":0,"stock_disposed_nr":0,"stock_ordered_nr":0,"width":null,"height":null,"weight":null,"volume":null,"html_text":null,"remarks":"

这里的问题是,我想将这些数据导出到 csv,然后在表格中很好地列出。我尝试过

from pandas.io.json import json_normalize
dic = response.json()
df = pandas.DataFrame(dic)
df.to_csv('detections.csv', index=False, sep="\t")

或者用pandas作为pd。但这不起作用。

python pandas api csv
2个回答
2
投票

如果您的 JSON 是字符串,请尝试使用

read_json

df = pd.read_json(json_string)

或者,使用

.json()
将 API 响应转换为 python 列表,并直接从该列表创建
DataFrame

r = requests.get('https://jsonplaceholder.typicode.com/posts')
df = pd.DataFrame(r.json())

如果响应不是列表 (

[{..}, .., {..}]
),而是单个对象 (
{..}
):

r = requests.get('https://jsonplaceholder.typicode.com/posts/1')
df = pd.DataFrame(r.json(), index=[0])

0
投票

如果从 API 提取数据后数据仅为 csv 格式怎么办

© www.soinside.com 2019 - 2024. All rights reserved.