Python: добавление API-вызовов в электронную таблицу
Я начну с того, что я очень плохо знаком с Python и программированием в целом, но я очень практичен в своем стиле обучения.
Я хотел бы использовать Python для:
- Соберите весь столбец электронной таблицы в список
- Обратитесь к API Klout, чтобы (а) получить идентификатор пользователя Klout и (б) получить оценку Klout
- Добавить эти две переменные в столбцы в одной электронной таблице
У меня есть ключ API, данные электронной таблицы, Python и сценарии Python klout
Спасибо за вашу помощь!
ОБНОВИТЬ
Спасибо Одинокому за помощь в продвижении. Теперь мне просто нужно записать результаты своих результатов в электронную таблицу.
from xlrd import open_workbook
from klout import *
k=Klout('my_API_key')
book=open_workbook('path_to_file')
sheet0=book.sheet_by_index(0)
List1=sheet0.col_values(0)
for screen_name in List1:
kloutId = k.identity.klout(screenName=screen_name).get('id')
score = k.user.score(kloutId=kloutId).get('score')
print screen_name, score
ОБНОВЛЕНИЕ 2
Успешно вернули имена экранов Twitter в новую электронную таблицу. Не могу получить оценки для правильного отображения. Он также останавливается на 30 (что является пределом количества запросов в секунду для Klout). Вот что у меня сейчас.
from xlrd import open_workbook
import xlwt
from klout import *
k=Klout('My_API_Key')
book=open_workbook('Path_to_My_File')
sheet0=book.sheet_by_index(0)
List1=sheet0.col_values(0)
for screen_name in List1:
kloutId = k.identity.klout(screenName=screen_name).get('id')
score = k.user.score(kloutId=kloutId).get('score')
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('sheet 1')
i = -1
for n in List1:
i = i+1
sheet.write(i,0,n)
b = 0
score1 = int(score)
for x in xrange(score1):
b = b+1
sheet.write(b,1,x)
wbk.save("KScores.xls")
ЗАКЛЮЧИТЕЛЬНАЯ РАБОЧАЯ ВЕРСИЯ
Имея массу помощи от личного контакта, которому я также доверяю большую часть написания этого сценария, у меня теперь есть готовый сценарий.py.
from xlrd import open_workbook
import xlwt
from time import sleep
from klout import *
klout_con = Klout('API_KEY_HERE', secure=True)
book = open_workbook('PATH_TO_YOUR_FILE_HERE')
sheet0 = book.sheet_by_index(0)
List1 = sheet0.col_values(0)
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('sheet 1')
row = 0
for screen_name in List1:
klout_id = klout_con.identity.klout(screenName=screen_name).get('id')
score = klout_con.user.score(kloutId=klout_id).get('score')
sheet.write(row, 0, screen_name)
sheet.write(row, 1, score)
row += 1
print screen_name
sleep(1)
wbk.save('KScores.xls')
Спасибо сообществу и Адаму, которые оба помогли мне собрать эту штуку вместе. Был отличный стартовый проект.
2 ответа
Чтобы прочитать Excel... используйте XLRD
Возьмите все идентификаторы в виде списка.
Прочитайте каждый из них, используя итерацию, как for i in list with Klout_APi
лайк...
score = k.user.score(kloutId=kloutId).get('score')
Однако пример данных был бы отличным...
С помощью xlrd
Вы можете читать данные из Excel и xlwt
для записи данных в Excels. Прочитайте их документацию. А для csv есть модуль csv
в стандартной библиотеке.