JSON 从 sparkcore 读取到 python

JSON read from sparkcore to python

我已经在网上搜索了,但没有找到合适的答案,所以我会试着在这里问一下。

我正在试验 spark 核心并通过 JSON 解析数据。我已经设法读取数据并使用以下代码打印它:

import urllib, json
from pprint import pprint

url = "https://api.spark.io/v1/devices/mycore/result?access_token=accesstoken"
response = urllib.urlopen(url);
data = json.loads(response.read())
pprint(data)

现在我正在尝试使用以下代码打印发送的值:

data["result"]["data1"]

我在另一个主题中找到了上面的内容,但我可能没有经验将其正确应用到我自己的代码中。

这是 python 打印的内容:

{u'cmd': u'VarReturn',
 u'coreInfo': {u'connected': True,
           u'deviceID': u'1111111111111111111',
           u'last_app': u'',
           u'last_handshake_at': u'2015-03-09T12:28:20.271Z',
           u'last_heard': u'2015-03-09T12:56:42.780Z'},
 u'name': u'result',
 u'result': u'{"data1":2869}'}

我得到的错误如下:类型错误:字符串索引必须是整数

我使用了本主题中的示例代码:

https://community.spark.io/t/example-logging-and-graphing-data-from-your-spark-core-using-google/2929

希望我说清楚了,谁能赐教一下?

尝试打印出来data["result"]。根据您提供的 python 打印,输出应该是 '{"data1":2869}',这是另一个 json 对象。

尝试这样的事情:

import urllib, json
from pprint import pprint

url = "https://api.spark.io/v1/devices/mycore/result?access_token=accesstoken"
response = urllib.urlopen(url);
data = json.loads(response.read())
pprint(data)

new_data = json.loads(data["result"])
print new_data["data1"]

数据["result"]的内容是一个unicode字符串。该字符串包含看起来像 JSON doc / Python 字典的内容(请参阅整个结构周围的单引号):

>>> data["result"]
u'{"data1":2869}'