gpt4 book ai didi

mysql - Tweepy 信息写入 MySQL - 文本被截断

转载 作者:行者123 更新时间:2023-11-29 18:35:38 24 4
gpt4 key购买 nike

我正在使用 Tweepy 将来自 twitter 的信息插入到 MySQL 表中。大多数情况下,它的工作原理是有意的,但推文中的实际文本被切断,并且许多以“...”结尾,我不确定这是为什么。

输出示例如下:

@JamesMelville:留欧选民通过“贬低国家”并不是“不爱国”。事实恰恰相反。留欧派关心英国的 future ……

感谢您的帮助

这是我的流监听器类:(我是 python 新手,所以这可能很差)

class listener(StreamListener):



def on_data(self, data):
try:


jsonData=json.loads(data)


tweets =(jsonData['text'])

if tweets.startswith('RT'):
retweets = True
else:
retweets = False


tweets = tweets.replace('RT', '')
tweets = tweets.replace("'", '')
tweets = tweets.lstrip()
tweets = tweets.replace('\n', '')



screen_name =(jsonData['user']['screen_name'])

name =(jsonData['user']['name'])
name = name.replace(',', ' ')
language =(jsonData['lang'])

location =(jsonData['place'])

coord =(jsonData['coordinates'])

device = jsonData['source'].split('">')[1].replace('</a>', '')

tweettime = jsonData['created_at'].replace('+', '')
tweettime = datetime.datetime.strptime(tweettime, "%a %b %d %H:%M:%S %f %Y")
date_to_string = str(tweettime.strftime("%Y/%m/%d,%H:%M:%S"))
date_created = date_to_string.split(',')[0]
time_created = date_to_string.split(',')[1]
created_time =(time_created)
created_date =(date_created)

htext = jsonData['entities']['hashtags']
htext2 = []
hashtag_list = ''
for hashtag in htext:
htext=str(hashtag['text'])
hashtag_list = hashtag_list + ' ::' + htext
hashtag_list = hashtag_list.replace("'", "")






conn = connect( host = '', port = , user = ', passwd = '', charset='utf8', autocommit = True);
conn.commit()
cursor = conn.cursor( cursors.DictCursor );

cursor.execute("CREATE DATABASE IF NOT EXISTS twitter")
cursor.execute("USE twitter")
cursor.execute( """CREATE TABLE IF NOT EXISTS `twitter_data`(ID INT AUTO_INCREMENT NOT NULL,`Name` VARCHAR( 200 ) ,`Screen name` VARCHAR( 200 ) , `Date created` VARCHAR ( 20 ), `Time created` VARCHAR ( 8 ), Tweet VARCHAR ( 200 ), Hashtags VARCHAR ( 200 ), Retweets VARCHAR ( 5 ), Lanugage VARCHAR ( 20 ), Device VARCHAR ( 60 ), Location VARCHAR( 200 ), Coordinates VARCHAR ( 200 ), PRIMARY KEY ( ID ))""" )
sql = "INSERT INTO `twitter_data` VALUES( Null, '" + str(name) + "', '" + str(screen_name) + "', '" + str(created_date) + "', '" + str(created_time) + "', '" + str(tweets) + "', '" + str(hashtag_list) + "', '" + str(retweets) + "', '" + str(language) + "', '" + str(device) + "', '" + str(location) + "', '" + str(coord) + "') "
print(sql)
cursor.execute(sql)

return True
except Exception as N:
print('failed on_data '+ str(N))
time.sleep(5)

最佳答案

我已经找到了我的问题的解决方案。由于 140 个字符的限制,转发时文本被截断。因此它与MySQL无关。我的解决方案是如果推文是转发,则使用“retweet_status”属性(并拆分出实际的推文文本部分)而不是“文本”,否则我只使用“文本”。以下是一些已更改的代码:

if tweets.startswith('RT'):
retweets = True
tweets = str(jsonData['retweeted_status']).split('\'text\':')[1]

if 'display_text_range' in tweets:
tweets = tweets.split(', \'display_text_range\'')[0]
else:
tweets = tweets.split(', \'source\'')[0]
else:
retweets = False
tweets = tweets.replace('RT', '')

关于mysql - Tweepy 信息写入 MySQL - 文本被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45330268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com