Я новичок в python, в основном использовал R, но я пытаюсь использовать приведенный ниже код для прогона около 90 аккаунтов/хендлов twitter (сохраненных в виде одноколоночного файла csv под названием '1' в приведенном ниже коде) через Botometer V4 API. На API github говорится, что можно прогнать последовательность аккаунтов с помощью 'check_accounts_in' без перехода на платную версию BotometerLite.

Однако я застрял на том, как перебрать все аккаунты/хендлы в электронной таблице, а затем сохранить отдельные результаты в новый csv. Любая помощь или предложения будут приняты с благодарностью.

import botometer
импорт csv
import pandas as pd

rapidapi_key = "xxxxx"
twitter_app_auth = {
    'consumer_key': 'xxxxx',
    'consumer_secret': 'xxxxx',
    'access_token': 'xxxxx',
    'access_token_secret': 'xxxxx',
  }
bom = botometer.Botometer(wait_on_ratelimit=True,
                          rapidapi_key=rapidapi_key,
                          **twitter_app_auth)

#читаем csv с именами учетных записей с помощью pandas
data = pd.read_csv("1.csv")

для screen_name, result в bom.check_accounts_in(data):

#добавляем вывод в csv
    with open('output.csv', 'w') as csvfile:
        csvwriter = csv.writer(csvfile)
        csvwriter.writerow(['Имя аккаунта', 'Astroturf Score', 'Fake Follower Score']),
        csvwriter.writerow([
        result['user']['user_data']['screen_name'],
        result['display_scores']['universal']['astroturf'],
        result['display_scores']['universal']['fake_follower']
        ])

gzpach

Ответов: 1

Ответы (1)

Я не уверен, что возвращает API, но вам нужно просмотреть данные CSV и отправить каждый элемент в API. с возвращенными результатами вы можете добавить CSV. Вы можете просмотреть CSV без pandas, но он сохранил это, потому что вы уже используете его.

добавил фиктивную функцию для демонстрации сохранения некоторых возвращаемых данных в csv.

CSV, который я использовал:

names
имя1
имя2
имя3
имя4


импортировать pandas как pd
импортировать csv

def sample(x):
    return x + " "Некоторые новые данные"

df = pd.read_csv("1.csv", header=0)

output = open('NewCSV.csv', 'w+')

for name in df['names'].values:
    api_data = sample(name)
    csvfile = csv.writer(output)
    csvfile.writerow([api_data])

output.close()



для чтения CSV с одним столбцом напрямую без pandas. возможно, вам потребуется корректировка в зависимости от вашего CSV


with open('1.csv', 'r') as csv:
    content = csv.readlines()

for name in content[1:]: # пропускает строку заголовка - удалите [1:], если в файле его нет
    api_data = sample(name.replace('\n', ""))

Сделаем несколько предположений о вашем API. Это может сработать:

Предполагается, что API возвращает словарь:

{"cap":
    {
    "english": 0.8018818614025648,
    "universal": 0.5557322218336633
    }

импортировать pandas как pd
импортировать csv

df = pd.read_csv("1.csv", header=0)

output = open('NewCSV.csv', 'w+')
for name in df['names'].values:
    api_data = bom.check_accounts_in(name)
    csvfile = csv.writer(output)
    csvfile.writerow([api_data['cap']['english'],api_data['cap']['universal']])

output.close()

2022 WebDevInsider