2013-07-09 1 views
0

Начну с того, что я очень новичок в Python и программировании вообще, но очень хорошо разбираюсь в своем стиле обучения.Python: добавление API-вызовов в электронную таблицу

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

  1. Соберите всю колонку таблицы в список
  2. Зов API Klout к (а) Получить идентификатор Klout пользователя и (б) Получить Klout Score
  3. Append эти две переменные в столбцах в одной и той же таблицы

у меня есть ключ API, данные электронной таблицы, Python и скрипты Klout Python

Спасибо за помощь!

UPDATE

Благодаря Одинокого за помощь в получении мне это далеко. Теперь мне просто нужно написать результаты моих результатов в таблицу.

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 

UPDATE 2

Успешно положил Twitter Screennames обратно в новую таблицу. Кажется, не получается правильно отображать баллы. Он также останавливается на 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") 

FINAL РАБОЧАЯ ВЕРСИЯ

С тонной помощью личного контакта, который я кредитовать большинство написания этого сценария тоже теперь есть заполненный .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') 

Благодаря сообществу и Адаму, которые помогли мне собрать эту штуку вместе. Был отличным стартовым проектом.

+0

Какой формат является вашей таблицы в? .xls? – llb

+0

он находится в. Xls, но может быть легко преобразован в .csv, если необходимо – LearnWorkLearn

ответ

1

Чтобы прочитать первенствовать ... использовать XLRD

Возьмите все идентификаторы в формате списка.

Прочитайте каждый из них с помощью итерации, как for i in list with Klout_APi как ...

score = k.user.score(kloutId=kloutId).get('score') 

Однако выборки данных было бы здорово ...

+0

Первые две колонки таблицы выглядят так же, как это ПОЛНОЕ ИМЯ | TWITTER_ID | Person1 TwitterHandle1 Person2 TwitterHandle2 XLRD выглядит так, как будто это делается для чтения. – LearnWorkLearn

+0

вам действительно нужно это прочитать. ... https: //klout.readthedocs.org/ru/latest/ – LonelySoul

+0

Я успешно использовал этот пакет, чтобы вытащить части списка, но у меня есть более 400 твиттер-ручек, и вам нужно будет извлечь их из электронной таблицы для использования API. – LearnWorkLearn

0

Использование xlrd вы можете прочитать данные от excel и xlwt для записи данных в Excel. Прочитайте их документацию. А для csv в стандартной библиотеке есть модуль csv.