我的代码看起来像这样:
payload = base64.b64decode(record['kinesis']['data'])
print("Decoded payload: " + payload)
Run Code Online (Sandbox Code Playgroud)
在日志中,打印行的结果如下所示:
解码的有效负载:{"timeStamp":1509835693.7319956,"thing":"testing/23"}
我不会像这样引用timeStamp:
payload['timeStamp']
Run Code Online (Sandbox Code Playgroud)
我对此数据结构中的内容感到困惑.有人可以向我解释我在这里有什么以及我如何访问变量有效载荷内的数据?
解码数据是一个字符串(如错误所示),而不是字典.您需要在访问其元素之前解析它.
考虑到您的数据是JSON格式,如上所示:
import json
payload_str = base64.b64decode(record['kinesis']['data'])
payload = json.loads(payload_str) # parsing
print("Decoded payload: ", payload)
Run Code Online (Sandbox Code Playgroud)
现在你可以访问没有问题payload['timeStamp'],只要JSON确实包含这个字段.