Python - 字符串索引必须是整数,而不是str - 需要帮助理解数据结构

时间:2017-11-04 23:13:35

标签: python

我的代码如下所示:

    payload = base64.b64decode(record['kinesis']['data'])
    print("Decoded payload: " + payload)

在日志中,打印行的结果如下所示:

  

解码的有效负载:   {       " timeStamp":1509835693.7319956,       "事情":"测试/ 23"   }

我不会像这样引用timeStamp:

payload['timeStamp']

我对此数据结构中的内容感到困惑。有人可以向我解释一下我在这里有什么以及我如何访问变量有效载荷内的数据?

1 个答案:

答案 0 :(得分:5)

解码数据是一个字符串(如错误所示),而不是字典。您需要在访问其元素之前解析它。

考虑到您的数据是JSON格式,如上所示:

import json

payload_str = base64.b64decode(record['kinesis']['data'])
payload = json.loads(payload_str)  # parsing
print("Decoded payload: ", payload)

现在,访问payload['timeStamp']时没有问题,只要JSON包含此字段。