Как поместить запрос API в кадр данных pandas? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь преобразовать API-интерфейс с открытым исходным кодом из NHTSA, чтобы в конечном итоге перейти в фрейм данных и на CSV.Я получаю сообщение об ошибке TypeError: data argument can't be an iterator.

Вот код ... пароль не требуется.

import requests, json;
import pandas as pd;
import io;

url = 'https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVINValuesBatch/';
post_fields = {'format': 'csv', 'data':'1HD1JBB433Y031504;1HD1FB4138Y670512;JH2RC44553M701813;JYAVN01EX9A001399'};
r = requests.get(url, data=post_fields);
df = pd.DataFrame(io.StringIO(r.text))

Спасибо за всех, кто может помочь.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Чтобы ответить на ваш оригинальный вопрос:

Для CSV это работает следующим образом

import requests
import pandas as pd
import io
url = 'https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVINValuesBatch/'
post_fields = {'format': 'csv', 'data':'1HD1JBB433Y031504;1HD1FB4138Y670512;JH2RC44553M701813;JYAVN01EX9A001399'}
r = requests.post(url, data=post_fields)

pd.read_csv(io.StringIO(r.text), sep=',')
0 голосов
/ 04 октября 2018

Итак, я понял это!Спасибо @ 576i.

import requests, json;
import pandas as pd;
import io;

url = 'https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVINValuesBatch/';
post_fields = {'format': 'json', 'data':'1HD1JBB433Y031504;1HD1FB4138Y670512;JH2RC44553M701813;JYAVN01EX9A001399'};
r = requests.post(url, data=post_fields);
x = r.json()

df = pd.DataFrame(x['Results'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...