Python 使用 Pipenv 搜索 Facebook 广告的脚本

Python script for searching on Facebook ads using Pipenv

我想 运行 一个 Python Facebook 广告搜索脚本,但我卡在了中间,希望你能帮助我(请参阅下文)。供您参考,我确实有一个 Facebook API 令牌,但我似乎有一个问题 运行ning 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

您在这里遇到的错误与 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。 如果您想使用 Jupyteripython 之类的东西,那么您不需要使用 arg 解析器,因为您不是带参数的 运行 python 文件,它们只是单元格按一定顺序执行。 我不认为这是你的最终目标,而是你的代码现在所做的,希望这会有所帮助,并准备提供更多与 fbads sdkpipenv 相关的支持(如果需要)