非常抱歉,我完全忘记提到我在使用Python。让我再试一次。
我正在使用Python来调用一个返回以下JSON的web服务:
{
"results" : [
{
"paramName" : "output",
"dataType" : "GPString",
"value" : "{'city': 'Falls Church', 'isRuralArea': False, 'zip': '22046', 'isNotInBTOPLMArea': True, 'longitude': '-77.186180', 'isGeocodable': True, 'county': u'Falls Church', 'isNotInBIPLMArea': True, 'state': 'VA', 'isLatLongInUSBounds': True, 'address': '604 Jackson St', 'latitude': '38.884937'}"
}
],
"messages" : [
]
}
以下是我提取/解析代码中的重要片段:
import urllib
import httplib2
import json
import simplejson
http = httplib2.Http()
headers, response = http.request(url, 'GET')
if headers['status'] == "200":
responseAsJson = simplejson.loads(response)
print "response = " + repr(responseAsJson)
results = responseAsJson['results'][0]['value']
不幸的是,这给我留下了以下结果的值(如PyScripter调试器的变量窗口中所报告的):
u"{'city': 'Falls Church', 'isRuralArea': False, 'zip': '22046', 'isNotInBTOPLMArea': True, 'longitude': '-77.186180', 'isGeocodable': True, 'county': u'Falls Church', 'isNotInBIPLMArea': True, 'state': 'VA', 'isLatLongInUSBounds': True, 'address': '604 Jackson St', 'latitude': '38.884937'}"
我不知道如何访问地址或城市等键。
你能告诉我哪里出了问题,以及如何解决吗?
谢谢, 杰米
我的旧问题(已过时):
这是我正在解析的JSON:
response = {u'messages': [], u'results': [{u'dataType': u'GPString', u'value': u"{'city': 'Falls Church', 'isRuralArea': False, 'zip': '22046', 'isNotInBTOPLMArea': True, 'longitude': '-77.186180', 'isGeocodable': True, 'county': u'Falls Church', 'isNotInBIPLMArea': True, 'state': 'VA', 'isLatLongInUSBounds': True, 'address': '604 Jackson St', 'latitude': '38.884937'}", u'paramName': u'output'}]}
我已经深入到这个节点,它的类型是“unicode”。我该如何将其转换为字典?我认为它是Unicode类型阻止了我创建字典或访问它的键,但我不确定。
u"{'city': 'Falls Church', 'isRuralArea': False, 'zip': '22046', 'isNotInBTOPLMArea': True, 'longitude': '-77.186180', 'isGeocodable': True, 'county': u'Falls Church', 'isNotInBIPLMArea': True, 'state': 'VA', 'isLatLongInUSBounds': True, 'address': '604 Jackson St', 'latitude': '38.884937'}"
感谢您,Jamie。
u
去掉,它就是合法的。 - Jonathan M