2016-05-03 109 views
0

类型错误不是一个有效非字符串序列或映射对象:不是一个有效非字符串序列或映射对象 •与数据构造的数据字典和使用json.dumps •发布请求一起类型错误:

data = { 
    "filter": "'{{Activity.Type}}'='Bounceback'", 
    "name": "Bulk Activity Export - Bounceback", 
    "fields": { 
     "ActivityId": "{{Activity.Id}}" 
    } 
} 

data = json.dumps(data) 

print(request.post("/activities/exports", data = data)) 

POST请求方法(这是不完整的码,只是它执行交请求的部分)

def post(self, url, data): 
    return self.request('POST', url, data) 

print(request) 
if data != None: 
    data = urllib.urlencode(data) 

结果:

认证没有问题。这是请求对象和http头。我得到TypeError:不是有效的非字符串序列或映射对象错误。

data object: {"filter": "'{{Activity.Type}}'='Bounceback'", "fields": {"AssetType": "{{Activity.Asset.Type}}", "ActivityId": "{{Activity.Id}}", "EmailAddress": "{{Activity.Field(EmailAddress)}}", "AssetId": "{{Activity.Asset.Id}}", "ActivityDate": "{{Activity.CreatedAt}}", "AssetName": "{{Activity.Asset.Name}}", "CampaignId": "{{Activity.Campaign.Id}}", "ExternalId": "{{Activity.ExternalId}}", "ActivityType": "{{Activity.Type}}"}, "name": "Bulk Activity Export - Bounceback"} 

页眉:

{'Content-Type': 'application/json', 'Authorization': 'Basic RmlhdE1hcmtldGluZ1xGMzIwMDJCOkFjY2V'} 

回答

0

See herehere

我不是一个Python的专家,但这个问题是不相关的Eloqua,但到Python。您似乎手动创建您的定义,您可以尝试手动创建词典,而不是使用json.dumps

我希望这个基本身份验证令牌为false,而不是有人会轻松登录到您的Eloqua。