boto/boto — pull request #1686 by chilang (2013-08-24 21:23:04+00:00)
Title: Fix serialization of SNS attributes parameter of type map

Current boto (2.10) fails when making sns request with 'attributes' parameter which are of type map (e.g. create_platform_application(name='App', platform='APNS', attributes={'PlatformPrincipal': 'a ssl cert', 'PlatformCredential': 'a private key'}).

It looks like the map (python dictionary) is literally serialized as json dict which AWS doesn't like, i.e. resulting in 400 Bad Request, e.g.
ERROR:boto:{"Error":{"Code":"MalformedInput","Message":"End of list found where not expected","Type":"Sender"},"RequestId":"2011cb93-23f4-5c62-8158-81002d27407a"}.

Looking at http://docs.aws.amazon.com/sns/latest/APIReference/API_CreatePlatformApplication.html suggested that a map/dictionary is expected to be serialized as name.entry.1.key, name.entry.1.value, name.entry.2.key, name.entry.2.value, ...

This PR implements that serialization.

Sorry but no tests (yet) but it worked on my machine (tm) :-).