我正在使用python和twitter做一个小脚本,除了一件小事之外,它的工作正常并且一切都很好。
当我导入某个用户的推文的ID时,我打印出来看看我是否收到了正确的信息,而且,当我将其打印出来时,它就像这样:
330090997180665856
(来自cnn的一些随机推文。)然而,我正在使用texttable将它们打印到我正在获得的每条推文的转推计数旁边的表中,并且这也正常。然而,在推文ID所在的专栏中,它就是这样的:
3.301e+17
我假设这是因为python认为这是一个很长的因为某些原因而变成浮点数。我把它变成一个字符串,或者在我把它添加到推文列表之前将它转换成一个int,但问题仍然存在,我不知道该怎么做,我已经尝试做多(tweet_id)但是没有不管怎样。
可能有一些非常简单的解决方案,但我还没找到:/
编辑:这是我的代码: 一些OAuth之前但没有把它放在这里
def main():
USER_ID = raw_input("Enter User Id: ")
COUNT = input("How many tweets to analyze: ")
OUT_FILE_NAME = OUT_DIR + 'output_file_test' + USER_ID + '.txt'
tweet_list = []
retweet_count_list = []
total_retweets = 0
#tweet_cursors = Cursor(api.user_timeline, id = USER_ID).items(COUNT)
while True:
try:
for tweet_cursor in Cursor(api.user_timeline, id = USER_ID).items(COUNT):
print "cursoring"
x = str(tweet_cursor.id)
tweet_list.append(x)
print x
y = tweet_cursor.retweet_count
retweet_count_list.append(y)
print y
total_retweets = total_retweets + y
break
except TweepError, e:
some error handling
avg_retweet = total_retweets / COUNT
print "The Average retweets per tweet was: "
print avg_retweet
header = ["Tweet Id", "Retweet Amount"]
tab.header(header)
tab.set_cols_width([30,30])
for i in range(0, COUNT):
one = str(tweet_list[i])
two = str(retweet_count_list[i])
tab.add_row([one, two])
output_table = tab.draw()
print output_table
答案 0 :(得分:1)
您需要set_cols_dtype
到整数('i'
)。看起来默认为自动('a'
)。
table = texttable.Texttable()
table.set_cols_dtype(['i', # integer
'a' ]) # automatic
table.add_rows([['int', 'auto'], [330090997180665856, 330090997180665856], [1, 1]])
print table.draw()
给出:
+--------------------+-----------+
| int | auto |
+====================+===========+
| 330090997180665856 | 3.301e+17 |
+--------------------+-----------+
| 1 | 1 |
+--------------------+-----------+