Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python json prase ValueError:无法解码任何json对象_Python_Json_String_Python 2.7_Gps - Fatal编程技术网

Python json prase ValueError:无法解码任何json对象

Python json prase ValueError:无法解码任何json对象,python,json,string,python-2.7,gps,Python,Json,String,Python 2.7,Gps,我在使用python的json字符串时遇到了问题。我已经编写了一个脚本,使用find my iphone python模块这个模块在输出端给我这个字符串 {u'locationType':u',u'altitude':0.0,u'locationFinished':True,u'Ladynamic':7.340714223689717,u'positionType':u'GPS',u'floorLevel':0,u'timeStamp':1497518502892L,u'latitude':47

我在使用python的json字符串时遇到了问题。我已经编写了一个脚本,使用find my iphone python模块这个模块在输出端给我这个字符串

{u'locationType':u',u'altitude':0.0,u'locationFinished':True,u'Ladynamic':7.340714223689717,u'positionType':u'GPS',u'floorLevel':0,u'timeStamp':1497518502892L,u'latitude':47.81268700030429,u'isOld':False,u'isInaccurate':False,u'verticalAccuracy':0.0,u'HorizontalAccurance':50.0}

经过一段时间的讨论后:

loc = api.devices[deviceID].location()
locstr = str(loc).replace("u'",'"').replace("'",'"') #.replace("}","")
我获得一个如下所示的字符串:

{“位置类型”:“高度”:0.0,“位置完成”:False,“经度”:7.340450948111099,“位置类型”:“GPS”,“地板标高”:0,“时间戳”:1497518436368L,“纬度”:47.81275740829093,“isOld”:False,“isInaccurate”:False,“垂直精度”:0.0,“水平精度”:100.0}

这是我的代码: `

从pyicloud导入PyiCloudService
从geopy.distance导入vincenty
导入json
导入系统
api=PyiCloudService('*********@free.fr','********'))
deviceID=u“Qo+JYVCT3IIL7N3MxRZ6LFDVM8QJDCHJKEDOVSE1MHZWF1SIKVSFQOHYVSZMWV”需要
deviceNAME=”“#只是一个帮助
api.devices[deviceID].location()
api.devices[deviceID].status()
loc=api.devices[deviceID].location()
locstr=str(loc).replace(“u'”,“”).replace(“,”)#.replace(“},”)
但是当我尝试使用

json.loads(locstr)

请给我:

回溯(最后一次调用):文件“distancePAPA.py”,第19行, 在里面 t=json.loads(locstr)文件“/usr/lib/python2.7/json/init.py”,第339行,在loads中 在decode中返回_default_decoder.decode文件“/usr/lib/python2.7/json/decoder.py”,第364行 obj,end=self.raw_decode(s,idx=_w(s,0.end())文件“/usr/lib/python2.7/json/decoder.py”,第382行,在raw_decode中 raise VALUERROR(“无法解码JSON对象”)VALUERROR:无法解码JSON对象

我真的不知道我做错了什么,所以我请求帮助

我只需要gps坐标
PS2:我是法国人,很抱歉弄错了。

我使用ast模块


导入ast
loc_str=ast.literal_eval(str(loc))

Json不支持
False
1497518436368L
中的后缀
L
;要使其规则化,我们需要再次转换它

s = locstr.replace('False', 'false').replace('L,', ',')

现在,我们可以使用
json.loads

感谢您的解决方案,我最终使用了您的解决方案
import json

>>> loc = api.devices[deviceID].location()
>>> locstr = json.dumps(loc)
'{"horizontalAccuracy": 50.0, "floorLevel": 0, "isOld": false, "isInaccurate": false, "verticalAccuracy": 0.0, "timeStamp": 1497518502892, "altitude": 0.0, "locationFinished": true, "longitude": 7.340714223689717, "positionType": "GPS", "locationType": "", "latitude": 47.81268700030429}'

>>> json.loads(locstr)
{u'timeStamp': 1497518502892, u'altitude': 0.0, u'locationFinished': True, u'longitude': 7.340714223689717, u'horizontalAccuracy': 50.0, u'floorLevel': 0, u'locationType': u'', u'latitude': 47.81268700030429, u'isOld': False, u'isInaccurate': False, u'verticalAccuracy': 0.0, u'positionType': u'GPS'}
s = locstr.replace('False', 'false').replace('L,', ',')