首页 > 解决方案 > 使用导入的 CSV 文件(熊猫)创建列表/字典,以便我可以使用网络抓取工具引用变量

问题描述

我想使用 Pandas 将具有各种 Twitter 句柄的 CSV 文件导入 Python,然后为每个“用户名”(Twitter 句柄)分配一个变量,我可以在不同的代码(网络爬虫)中调用该变量来检索追随者。

我正在积极尝试尽可能多地学习,所以我不喜欢所有这些的整个代码,只是我如何能够使用 CSV 文件创建可行的变量。这样我就可以通过这一步并开始我剩下的学习,但我只是非常卡在这里。

(提前非常感谢你,我在学习 Python 方面度过了一段美好的时光,但我很犹豫,因为我觉得我可能在这里超出了我的知识领域并超越了自己,但我已经掉进了一个兔子洞它似乎)

这是我到目前为止的代码 - 调用 CSV 文件

 # import the module 
import tweepy
import pandas as pd
import pandas



df = pd.read_csv(r'C:\Users\Rob\Desktop\Python Learning\contentinfo.csv')
print(df)

然后我收到的输出就是这个

     Username
0      Obey_Memorii
1         Kingstaxy
2        ParamoreNA
3             Navin
4          ObeyCayd
5              edns
6   LeonBackwardsTV
7         SHORTYPlE
8        Papa_Richh
9       cleggnation
10           xMethy
11          Ahspect
12       KarizMaInc
13       DuncanMors
14        ObeyGrave
15    JustifiedJack
16      mattythebae
17       CyborgLive
18      Legendof_Ti
19     ConnorSparky
20     Nuka Dilucca
21            Toari
22            Paavs
23         Elevated
24         BFRocket
25      END OF LIST

正如您在此处看到的,我导入了文件,并生成了放入 CSV 文件中的值,我只是不确定以后如何在编码中分别引用每个值

标签: pythonpython-3.xpandascsvscreen-scraping

解决方案


我将使用循环遍历用户列表,for并在用户名的循环中执行一些函数,如process_user()下面的函数:

import pandas as pd

# tweepy processing function
def process_user(username):
    print(f'processing: {username}')
    # your logic here

users = pd.read_csv('./twitter_users.csv')

# loop through the users and do stuff
for user in users['Username']:
    process_user(user)

您也不需要为此使用熊猫(如果只是为了打开文件,我不会):

import csv

def read_csv(path, fieldnames=None, delimiter=','):
    '''return a list of dictionaries
    '''
    with open(path, 'r') as file:
        reader = csv.DictReader(file, fieldnames, delimiter=delimiter)
        return [dict(row) for row in reader]

# tweepy processing function
def process_user(username):
    print(f'processing: {username}')
    # your logic here

users = read_csv('./twitter_users.csv')  # or your file path

# loop through the users and do stuff
for user in users:
    process_user(user['Username'])

输出:

processing: Obey_Memorii
processing: Kingstaxy
processing: ParamoreNA
processing: Navin
processing: ObeyCayd
processing: edns
processing: LeonBackwardsTV
processing: SHORTYPlE
processing: Papa_Richh
processing: cleggnation
processing: xMethy
processing: Ahspect
processing: KarizMaInc
processing: DuncanMors
processing: ObeyGrave
processing: JustifiedJack
processing: mattythebae
processing: CyborgLive
processing: Legendof_Ti
processing: ConnorSparky
processing: Nuka Dilucca
processing: Toari
processing: Paavs
processing: Elevated
processing: BFRocket
processing: END OF LIST

推荐阅读