Python将tweepy tweet和用户id转换为科学符号

2024-04-20 13:34:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用twitter做一些数据挖掘,结果遇到了这个问题。当我试图将tweet写入CSV文件时,Python不断地将tweet的大数字id转换为科学符号。例如,如果ID是9381435503399854,python会将其转换为9.38143503399854e+17。我试过使用format(int(tweet.id), ".0f"),但得到了相同的结果。Format(int(tweet.id), "f")看起来很有效,但是在id的末尾附加了“.000000”。任何建议都将不胜感激。下面是一些示例代码:

writeExtended(count, tweet.id, tweet.full_text.encode('utf8'), tweet.display_text_range, tweet.created_at)

def writeExtended(id, idstr, full_text, display_text_range, created_at):
    #Write Extended tweet details to CSV file
    with open('Extended.csv', mode='a+') as employee_file:
        employee_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
        employee_writer.writerow([id,idstr, full_text, display_text_range, created_at])

Tags: csvtextiddisplayemployeerangeatfull
1条回答
网友
1楼 · 发布于 2024-04-20 13:34:13

我猜您的脚本运行得很好,您看到的效果(即转换为科学格式)是将CSV文件转换为Excel(或其他电子表格应用程序)的结果。您应该尝试在文本编辑器(如记事本)中打开CSV文件。你知道吗

作为一种稍微奇怪的解决方法,您可以将其转换为文本,并在其前面加上制表符。这将停止转换:

def writeExtended(id, idstr, full_text, display_text_range, created_at):
    #Write Extended tweet details to CSV file
    with open('Extended.csv', mode='a+', newline='') as employee_file:
        employee_writer = csv.writer(employee_file)
        employee_writer.writerow([id, '\t{}'.format(idstr), full_text, display_text_range, created_at])

writeExtended(count, tweet.id, tweet.full_text.encode('utf8'), tweet.display_text_range, tweet.created_at)

相关问题 更多 >