首页 > 解决方案 > 使用 python 从 ID 列表中获取多个 Twitter 屏幕名称

问题描述

如何从 Twitter ID 列表中获取屏幕名称?我将 ID 保存在 pandas 数据框中,并有 38194 个 ID,我希望与他们的屏幕名称匹配,这样我就可以进行网络分析。我正在使用python,但我对编码很陌生,所以我不知道这是否可能?我尝试了以下方法:

myIds = 朋友列表

如果我的身份:

myIds = myIds.replace(' ','')
myIds = myIds.split(',')
# Set a new list object
myHandleList = []
i = 0
# Loop trough the list of usernames
for idnumber in myIds:
    u = api.get_user(myIds[i])
    uid = u.screen_name
    myHandleList.append(uid)
    i = i+1
# Print the lists
print('Twitter-Ids',myIds)
print('Usernames',myHandleList)
    #set a filename based on current time
csvfilename = "csvoutput-"+time.strftime("%Y%m%d%-H%M%S")+".csv"
print('We also outputted a CSV-file named '+csvfilename+' to your file parent directory')
with open(csvfilename, 'w') as myfile:
    wr = csv.writer(myfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
    wr.writerow(['username','twitter-id'])
    j = 0
    for handle in myHandleList:
        writeline = myHandleList[j],myIds[j]
        wr.writerow(writeline)
        j = j+1

else: print('输入为空')

标签: pythonpandastweepy

解决方案


更新你的循环,因为我相信你已经很接近了。

myHandleList = []
myIds = ['1031291359', '960442381']
for idnumber in myIds:
    u = api.get_user(idnumber)
    myHandleList.append(u.screen_name)

print(myHandleList)

推荐阅读