Javascript 通过json.parse()在python中解析字符串形式json.dumps()后未定义的键
我有一个通过Javascript 通过json.parse()在python中解析字符串形式json.dumps()后未定义的键,javascript,jquery,python,ajax,json,Javascript,Jquery,Python,Ajax,Json,我有一个通过json.dumps()从python返回的字符串。我使用的是python 2.6或2.7。当我在JavaScript中使用JSON.parse()解析它时。我用钥匙得到了未定义的 javascript(ajax)接收到的字符串如下所示: {'country': u'\u4e0a', 'Search': {'city_num': 25, 'index': ''}, 'Locc': ['116.116', '29.29'], 'cid': '285'} 当我使用: objstr =
json.dumps()
从python返回的字符串。我使用的是python 2.6或2.7。当我在JavaScript中使用JSON.parse()解析它时。我用钥匙得到了未定义的
javascript(ajax)接收到的字符串如下所示:
{'country': u'\u4e0a', 'Search': {'city_num': 25, 'index': ''}, 'Locc': ['116.116', '29.29'], 'cid': '285'}
当我使用:
objstr = JSON.parse(jsonstr);
alert(objstr.country);
我在弹出的警报窗口中未定义。objstr[0]。国家
和objstr[0]['country']
get未定义
我该怎么办?我读过几篇关于stackoverflow和google的文章,但我仍然不知道如何解决这个问题。谁能给我一些建议?谢谢
编辑
接收ajax请求的我的代码:
def POST(self):
resultline = {}
file = open("..\\cache\\res.cache", 'r')
last_pos = self.get_pos()
print last_pos
pos = int(last_pos)
file.seek(pos)
line = file.readline()
print line
if ''== line:
file.seek(0, 0)
line = file.readline()
last_pos = file.tell()
self.store_pos(last_pos)
resultline = line
file.close()
if '' != resultline:
resultlinetmp = resultline[0:len(resultline)-1]
return json.dumps(resultlinetmp)
u'\u4e0a'
是问题的原因,在单个引号外有一个u
是否确实使用了json.dumps()
?这看起来像字典的repr
。它由“return str(json.dumps(resultline))”返回@TimWell如何转换unicode字符串objstr.cid
gotundefined
@rps'country':u'\u4e0a'
是问题的根源,json值不应该有任何超出“
的内容,但是默认情况下python字符串用作unicode,因此您不应该使用json.dumps()
,最好使用自定义编码器来输出普通字符串,而不是unicode字符串。