Dataframe dari API ke CSV
Sep 03 2020
Saya menggunakan python dan mencoba mengekspor data dari API ke 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}
Itu bekerja dengan baik.
[{"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":"
masalahnya di sini adalah, saya ingin mengekspor data ini ke csv yang kemudian tercantum dengan baik dalam tabel. Saya mencoba dengan
from pandas.io.json import json_normalize
dic = response.json()
df = pandas.DataFrame(dic)
df.to_csv('detections.csv', index=False, sep="\t")
atau dengan panda sebagai pd. Tapi dosen itu tidak berhasil.
Jawaban
2 perl Sep 03 2020 at 12:16
Coba read_jsonjika Anda memiliki JSON sebagai string:
df = pd.read_json(json_string)
Atau, sebagai alternatif, mengonversi respons API ke daftar python dengan .json()dan langsung membuat DataFramedari daftar itu:
r = requests.get('https://jsonplaceholder.typicode.com/posts')
df = pd.DataFrame(r.json())
Jika responsnya bukan list ( [{..}, .., {..}]), tetapi satu objek ( {..}):
r = requests.get('https://jsonplaceholder.typicode.com/posts/1')
df = pd.DataFrame(r.json(), index=[0])
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'