从sparkcore到python的JSON读取

从sparkcore到python的JSON读取,python,json,apache-spark,core,sparkcore,Python,Json,Apache Spark,Core,Sparkcore,我已经在网上搜索过了,但是找不到合适的答案,所以我会尝试在这里提问 我正在试验spark core,并通过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

我已经在网上搜索过了,但是找不到合适的答案,所以我会尝试在这里提问

我正在试验spark core,并通过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}'}
我得到的错误是:TypeError:string索引必须是整数

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

我希望我说的很清楚,有人能给我一些启发吗?

试着打印数据[结果]。根据您提供的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"]

data[result]的内容是一个unicode字符串。该字符串包含类似于JSON文档/Python字典的内容请参见整个结构的单引号:

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

谢谢现在它就像一个符咒!我对使用JSON一无所知,所以我不知道它是JSON对象中的JSON对象。这是不是很正常?从你发送的链接,从spark.io教程,似乎这取决于你在结果中传递什么。另一个JSON对象很好,请记住解析它。好了,现在我让它工作起来了,我将仔细看看我可以用JSON做什么。再次感谢您的回复!