我正在尝试将来自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))
感谢您能提供帮助的人。
答案 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'])