Python: добавление API-вызовов в электронную таблицу

Я начну с того, что я очень плохо знаком с Python и программированием в целом, но я очень практичен в своем стиле обучения.

Я хотел бы использовать Python для:

  1. Соберите весь столбец электронной таблицы в список
  2. Обратитесь к API Klout, чтобы (а) получить идентификатор пользователя Klout и (б) получить оценку Klout
  3. Добавить эти две переменные в столбцы в одной электронной таблице

У меня есть ключ 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 в стандартной библиотеке.

Другие вопросы по тегам