我是Python新手,试图编写脚本来控制Facebook营销API中的广告系列预算。你并不需要知道Facebook营销平台能够帮助我,因为这主要是一个Python相关的问题,因为我是Python新手,不知道如何去编写代码。Python以JSON格式存储Facebook广告集并创建计时器
#==========specify account ID in which the campaign you want to budget control resides=========================
AD_ACCOUNT_ID = 'act_4534633563'
#===============================================================================
campaign = Campaign(34635645764574)
fields = [
AdSet.Field.name,
AdSet.Field.lifetime_budget,
]
adsets = campaign.get_ad_sets(fields=fields)
with open('data.json', 'w') as f:
for adset in adsets:
print(adset[AdSet.Field.name])
json.dump(adset, f)
结果:
Traceback (most recent call last):
File "C:\Python27\Scripts\JSonTest1.py", line 50, in <module>
json.dump(adset, f)
File "C:\Python27\Lib\json\__init__.py", line 189, in dump
for chunk in iterable:
File "C:\Python27\Lib\json\encoder.py", line 442, in _iterencode
o = _default(o)
File "C:\Python27\Lib\json\encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <AdSet> {
"id": "534534533454353",
"lifetime_budget": "50000",
"name": "US, CA, BR, PL, CN, IN, PK, SA, DE, AR, VE, JP, EG - 14+ - Copy"
} is not JSON serializable
这个脚本应该通过在一天的开始存储某个广告活动的广告台ID和终身预算成JSON,让广告系列一级预算控制。然后,此脚本应每六个小时轮询一次预算,以便在一天的开始时间内(每天早上在JSON文件内存储)减去当前生命周期(实时数据值)预算。如果所有广告组的生命周期的累计预算达到当天的用户指定广告系列预算,则广告系列会暂停一天,然后在第二天重新启动。
我有一对夫妇在这里问题.....
如何克服这个问题,JSON在那里说:我想存储的数据不是序列化?
如何存储/读取JSON对象,以便可以减去终身预算?
我可以在Python中做些什么,以便脚本每天运行并运行一整天,然后在一天结束时关闭。