问题描述
我有一组 100 个 Twitter 帐户,我一直在通过 snscrape 从中抓取推文。由于 twitter 句柄的数量庞大,我一直在寻找以编程方式完成每一步的方法。到目前为止,我已经能够使用 for 循环和 var() 函数以编程方式从每个 twitter 帐户中抓取每条推文,但是现在我正在尝试保存我遇到了一个关键错误。
到目前为止,我的方法如下:
- 创建 Twitter 句柄列表。
handles=['handle1','handle2','handle3']
- 为要保存到的每条推文中的数据创建空列表。
for handle in sanitized_twitter_handles:
Dynamic_Variable_Name = "tweets_list"+handle
vars()[Dynamic_Variable_Name] = []
tweets_listhandle1
Datetime Tweet Id Text Username year month
0 2021-03-17 20:21:21+00:00 1097298925851811841 text 1 text 1 text 1 ... handle1 2021 3
1 2021-03-17 19:32:19+00:00 1902269509419232769 text 2 text 2 text 2 ... handle1 2021 3
2 2021-03-17 15:49:01+00:00 1092093391025184775 text 3 text 3 text 3 ... handle1 2021 3
3 2021-03-17 14:04:54+00:00 0072187198827753218 text 4 text 4 text 4 ... handle1 2021 3
4 2021-03-16 22:16:50+00:00 0071948009458852868 text 5 text 5 text 5 ... handle1 2021 3
for handle in sanitized_twitter_handles:
Dynamic_Variable_Name3 = "tweets_df_"+handle
Dynamic_Variable_Name4 = "grouped_series_"+handle
vars()[Dynamic_Variable_Name4]=vars()[Dynamic_Variable_Name3].groupby('year')['Text'].agg('/'.join)
5.将这些对象中的每一个再次转换为数据帧。
for handle in sanitized_twitter_handles:
Dynamic_Variable_Name4 = "grouped_series_"+handle
Dynamic_Variable_Name5 = "grouped_df_"+handle
vars()[Dynamic_Variable_Name5]=vars()[Dynamic_Variable_Name4].to_frame()
生成的数据框如下所示:
Text
year
2011 text 1 text 1 text 1 text 2 text 2 text 2...
2012 text 3 text 3 text 3 text 4 text 4 text 4...
2013 text 5 text 5 text 5 text 6 text 6 text 6...
for handle in sanitized_twitter_handles:
Dynamic_Variable_Name5 = "grouped_df_"+handle
Dynamic_File_Name='grouped_by_year_df_'+handle+'.csv'
vars()[Dynamic_Variable_Name5].to_csv(vars()[Dynamic_File_Name],sep=',',fieldnames=['Year','Text'],index=True,encoding='utf-8')
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-84-431028213c91> in <module>
2 Dynamic_Variable_Name5 = "grouped_df_"+handle
3 Dynamic_File_Name='grouped_by_year_df_'+handle+'.csv'
----> 4 vars()[Dynamic_Variable_Name5].to_csv(vars()[Dynamic_File_Name],index=True)
KeyError: 'grouped_by_year_df_handle1.csv'
我认为标题可能已损坏,并尝试将 fieldnames (fieldnames=['Year','Text']) 函数添加到 .to_csv 命令。我还认为推文中的字符可能不适合 .csv 文件格式,并更改了编码方法 (encoding='utf-8')。无论如何,我仍然遇到 KeyErrors。
关于如何将这 100 个变量写入单个 csv 文件的任何建议将不胜感激。我宁愿不手动将每个文件写入 .csv。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)