我不知道如何确切地问这个问题,因为我不能共享API访问。如果有人能以正确的方式提出问题,我将不胜感激。你知道吗
我有一个代码,它可以很好地工作,并执行我需要的,但当我在DEF函数中使用这个API请求代码时,它返回时没有任何内容或错误。。。你知道吗
错误很简单,我无法获得输出,或返回0值
代码如下:
def sm_main_data():
#DATA PROCESSING - Impression|Engagements|VideoViews
urlMain = "https://api.simplymeasured.com/v1/analytics/" + key.accountId + "/posts/metrics?\
filter=analytics.timeseries_key.gte(" + config.start + ").lte(" + config.end + ")&\
filter=channel.eq(" + config.which_social_media + ")&\
metrics=analytics.engagement_total,analytics.video.views_count,analytics.impressions&\
dimensions=data_source_id,channel,analytics.timeseries_key.by(" + config.per_what + ")"
headers = {'content-type': 'application/json',
'Authorization': 'Bearer ' + key.token}
#Receive data from SM (main data) / modified it and save as JSON file
responseMain = requests.get(urlMain, headers=headers).json()
pprint.pprint(responseMain)
pass
sm_main_data()
我尝试在def中打印变量:
print(key.accountId)
print(config.start)
print(config.end)
print(config.which_social_media)
print(config.per_what)
全部打印正确。你知道吗
现在我迷路了。。。甚至无法从理论上了解出什么问题。为什么这个代码在def函数中不起作用???你知道吗
编辑1.0
错误
{u'errors': [{u'detail': u'` filter` parameter is not supported.,` metrics` parameter is not supported.,` dimensions` parameter is not supported.',
u'status': u'422',
u'title': u'Unprocessable Entity'}]}
编辑1.1
不带def的代码
#DATA PROCESSING - Impression|Engagements|VideoViews
urlMain = "https://api.simplymeasured.com/v1/analytics/" + key.accountId + "/posts/metrics?\
filter=analytics.timeseries_key.gte(" + config.start + ").lte(" + config.end + ")&\
filter=channel.eq(" + config.which_social_media + ")&\
metrics=analytics.engagement_total,analytics.video.views_count,analytics.impressions&\
dimensions=data_source_id,channel,analytics.timeseries_key.by(" + config.per_what + ")"
headers = {'content-type': 'application/json',
'Authorization': 'Bearer ' + key.token}
#Receive data from SM (main data) / modified it and save as JSON file
responseMain = requests.get(urlMain, headers=headers).json()
pprint.pprint(responseMain)
该错误显示您正试图将参数发送到服务器,参数前面有额外的空格:
名称前的额外空格是参数名称的一部分,因为您在字符串中包含了这些空格:
如果您出于任何其他原因缩进了
urlMain
字符串定义,比如if
语句或try...except
语句,而不仅仅是函数,您也会遇到同样的问题。你不必缩进那些在字符串文本中的部分。你知道吗与在字符串中使用
\
连续体不同,您可以使用separate string literals to create one long string,或者在下一行中以结束语"
结尾,后跟+
和"
开始引号:所有这些
+
串联都不是很可读,您应该真正使用string formatting将值插入到字符串中。你知道吗但是,您不需要构建这样的字符串,因为当您将字典作为
params
参数时,requests
可以为执行此操作。使用列表为给定参数名传入多个值:这里我使用
str.format()
插入来自config
和key
对象的值;注意占位符会拉出属性注意:我删除了Content-Type头,因为该头不适用于GET请求(它没有内容,请求体总是空的)。你知道吗
相关问题 更多 >
编程相关推荐