如何将API请求放入熊猫数据框?

时间:2018-10-04 13:34:33

标签: python-3.x pandas python-requests

我正在尝试将来自NHTSA的开源API拉取转换为最终进入数据帧并转换为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 :(得分:1)

要回答您的原始问题:

对于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=',')

答案 1 :(得分:0)

所以我想通了!谢谢@ 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'])