использование api запроса в файл json, который я могу перебирать

#python #api #python-requests

#python #API #python-запросы

Вопрос:

хорошо, поэтому я использую python 3

я смог получить данные api с помощью print(endpoint.json())

но я хочу сделать его доступным для чтения с помощью pandas, чтобы мне было проще выполнять итерации.

это код (имейте в виду, что я отказался от своего собственного ключа api и использую rapid api в качестве ресурса (в частности, базы данных фильмов)

 import requests
import json
import pandas
url = "https://movies-tvshows-data-imdb.p.rapidapi.com/"

querystring = {"type":"get-popular-movies","page":"1","year":"2020"}

headers = {
    'x-rapidapi-host': "movies-tvshows-data-imdb.p.rapidapi.com",
    'x-rapidapi-key': my key
    }

response = requests.request("GET", url, headers=headers, params=querystring)
data=response.json()
df=pandas.read_json(data)
print(df)
  

я получаю эту ошибку

   Traceback (most recent call last):
  File "c:UsersHomeDocumentsstudyingnewprojectnewproject.py", line 15, in <module>
    df=pandas.read_json(data)
  File "C:UsersHomeAppDataLocalProgramsPythonPython38libsite-packagespandasutil_decorators.py", line 199, in wrapper
    return func(*args, **kwargs)
  File "C:UsersHomeAppDataLocalProgramsPythonPython38libsite-packagespandasutil_decorators.py", line 296, in wrapper
    return func(*args, **kwargs)
  File "C:UsersHomeAppDataLocalProgramsPythonPython38libsite-packagespandasiojson_json.py", line 593, in read_json
    filepath_or_buffer, _, compression, should_close = get_filepath_or_buffer(
  File "C:UsersHomeAppDataLocalProgramsPythonPython38libsite-packagespandasiocommon.py", line 243, in get_filepath_or_buffer
    raise ValueError(msg)
ValueError: Invalid file path or buffer object type: <class 'dict'>
  

Ответ №1:

В вашем случае данные являются dict.

Итак, попробуйте с:

 pandas.DataFrame.from_dict(data)
  

Комментарии:

1. как я могу взять его dataframe и вставить в текстовый файл? он говорит, что я не могу, поскольку это фрейм даты

2. фрейм данных подходит для файла CSV. итак, как только вы сохраните это в переменной с именем df, вы можете выполнить df.to_csv(‘/path/to/file.csv’)