Python скрипт для поиска рекламы в Facebook с помощью Pipenv - PullRequest
0 голосов
/ 18 марта 2020

Я хочу запустить скрипт Python при поиске рекламы в Facebook, но я застрял в середине, надеясь, что вы мне поможете (см. Ниже). К вашему сведению, у меня есть токен API Facebook, но, похоже, у меня проблема с запуском Pipenv.

https://github.com/pandringa/fb-ads-tool

Буду признателен за любые ваши отзывы!

import csv
import re
import argparse
import dateparser
In [8]:

parser = argparse.ArgumentParser(prog='Aggregates search results by key')
parser.add_argument('file')
parser.add_argument('-k', '--key')
parser.add_argument('-o', '--out')
Out[8]:
_StoreAction(option_strings=['-o', '--out'], dest='out', nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None)
In [9]:

args = parser.parse_args()
infile = csv.DictReader(open(args.file))
usage: Aggregates search results by key [-h] [-k KEY] [-o OUT] file
Aggregates search results by key: error: unrecognized arguments: -f
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2


c:\users\appdata\local\programs\python\python37\lib\site-packages\IPython\core\interactiveshell.py:3339: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
  warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
In [10]:

rowset = {}
real_rowset = set()
In [11]:

out = csv.DictWriter(open(args.out, 'w'), fieldnames=[*infile.fieldnames, 'ad_versions_count'])
out.writeheader()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-11-4d5c0f933f42> in <module>
----> 1 out = csv.DictWriter(open(args.out, 'w'), fieldnames=[*infile.fieldnames, 'ad_versions_count'])
      2 out.writeheader()

NameError: name 'args' is not defined

1 Ответ

1 голос
/ 18 марта 2020

Ошибка, с которой вы сталкиваетесь, не связана с Pipenv, она связана с потоком вашего кода, вы, вероятно, управляли ячейками, используя args перед его определением

Я предпочитаю запускать код как это в скрипте, который я сделал с вашим

import argparse
import csv

parser = argparse.ArgumentParser(prog='Aggregates search results by key')
parser.add_argument('file')
parser.add_argument('-k', '--key')
parser.add_argument('-o', '--out')

args = parser.parse_args()
infile = csv.DictReader(open(args.file))


rowset = {}
real_rowset = set()

out = csv.DictWriter(open(args.out, 'w'), fieldnames=[*infile.fieldnames, 'ad_versions_count'])
out.writeheader()

Запустив его с помощью команды

python your_code.py --k key --o ./file.csv  ./sample.csv

, он на самом деле работает отлично и выдает выходной csv с теми же столбцами, что и входной. если вы хотите работать с чем-то вроде Jupyter или ipython, вам не нужно использовать анализатор arg, так как вы не запускаете файлы python с аргументами, это просто ячейки, выполняемые в определенной последовательности. Я не думаю, что это ваша конечная цель, но то, что ваш код делает сейчас, надеюсь, что это поможет и готово предоставить дополнительную поддержку, связанную с fbads sdk или pipenv, если необходимо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...