我试图以csv格式从网站上的图表中提取数据。我尝试过不同的代码组合,但似乎无法弄明白。根据我写的代码,我不断收到以下错误:
TypeError:' set'对象不可订阅 TypeError:需要浮点数
我的最新尝试看起来像这样:
import urllib
import urllib2
import csv
import StringIO
url = "https://api.rjmetrics.com/0.1/chart/chartid/export"
headers = {"X-RJM-API-Key": "myapikey"}
data = {"format=csv"}
response = urllib2.Request(url, data, headers)
re = urllib2.urlopen(response)
spamreader = csv.reader(re, delimiter=',', quotechar='|')
for row in spamreader:
print row
工作的CURL版本如下所示:
curl -d "format=csv" -H "X-RJM-API-Key: myapikey" https://api.rjmetrics.com/0.1/chart/chartid/export
但我不知道如何使用curl。
谢谢!
答案 0 :(得分:0)
data
应该是一个url编码的字符串,你传递一个集合 - {“format = csv”}是一个集合文字。试试这个:
data = urllib.urlencode(dict(format='csv'))
答案 1 :(得分:0)
对于此类任务,您应该使用Requests包。这样你就可以正确设置标题:
headers = {'X-RJM-API-Key': 'myapikey', 'content-type: text/csv'}
r = requests.get('https://api.rjmetrics.com/0.1/chart/chartid/export', headers=headers)
然后使用默认的csv阅读器。