首页 > 解决方案 > 如何从返回的 JSON 对象中提取数据并将每个值放入 CSV 的新列中?

问题描述

我正在访问一个 API 端点并增加一系列唯一 ID 以收集数据。想想像 google.com/api/x 这样的东西,其中 x 是我要递增的 ID。

所有这些目前都运行良好,但数据以 JSON 格式返回。我想做的是将这个对象的每个键:值对提取到一个新列中。因此,不是一个单元格填充整个 JSON 对象,而是将对象提取为在其自己的单元格中包含每个值,并以键作为标题,如果这有意义的话。

我在下面有我的代码。目前,正如我上面提到的,它只是将整个 JSON 对象转储到一个单元格中。

import requests
import json
import pandas as pd

booking_id = x

HEADERS = {'user-agent': ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5)'
                          'AppleWebKit/537.36 (KHTML, like Gecko)'
                          'Chrome/45.0.2454.101 Safari/537.36'),
                          'referer': 'https://book.nightsbridge.com/'}

def get_data(url):
    response = requests.get(url, headers=HEADERS)
    
    if response.status_code == 200:
        data = response.json()
        return data
    
    else:
        print(response.text)
        print(response.status_code)

df = pd.DataFrame([])

for i in range(y):
    base_url = "URL"   
    booking_url = base_url + str(booking_id)
    data = get_data(booking_url)
    df.to_csv('filename1.csv')
    df = df.append(data, ignore_index=True)
    
    booking_id +=1

df.to_excel('filename2.xlsx')

任何关于如何最好地实现这一目标的建议将不胜感激。谢谢!

标签: pythonjsonpandascsv

解决方案


推荐阅读