Python:将API调用附加到电子表格

时间:2013-07-09 04:29:04

标签: python api append klout

我首先要说的是我对Python和编程非常陌生,但我的学习方式非常好。

我想用Python来:

  1. 将电子表格的整列收集到列表中
  2. 致电Klout的API以(a)获取Klout用户ID和(b)获取Klout分数
  3. 将这两个变量添加到同一电子表格的列中
  4. 我有一个API密钥,电子表格数据,Python和klout Python脚本

    感谢您的帮助!

    更新

    感谢Lonely的帮助让我走到这一步。现在我只需要将我的分数结果写入电子表格。

    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 个答案:

答案 0 :(得分:1)

阅读excel ...使用XLRD

以列表格式记录所有id。

使用类似for i in list with Klout_APi之类的迭代来阅读每一个...

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

然而,样本数据本来就很棒......

答案 1 :(得分:0)

使用xlrd,您可以从excel和xlwt读取数据,以便将数据写入Excel。阅读他们的文件。对于csv,标准库中有一个模块csv