【发布时间】:2017-11-17 17:48:15
【问题描述】:
我实际上在使用 json 字符串和 python 时遇到了问题。我编写了一个使用 find-my-iphone python 模块的脚本,这个模块在输出端给了我这个字符串
{u'locationType': u'', u'altitude': 0.0, u'locationFinished': True, u'longitude': 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'horizontalAccuracy': 50.0}
经过一番论述:
loc = api.devices[deviceID].location()
locstr = str(loc).replace("u'",'"').replace("'",'"') #.replace("}","")
我得到一个如下所示的字符串:
{“locationType”:“”,“altitude”:0.0,“locationFinished”:False,“longitude”:7.340450948111099,“positionType”:“GPS”,“floorLevel”:0,“timeStamp”:1497518436368L,“纬度”:47.81275740829093,“isOld”:假,“isInaccurate”:假,“verticalAccuracy”:0.0,“horizontalAccuracy”:100.0}
有我的代码: `
from pyicloud import PyiCloudService
from geopy.distance import vincenty
import json
import sys
api = PyiCloudService('*****.*****@free.fr','******')
deviceID = u"Qo+Jyvct3IIl7N3MXrz6LfDvm8qjDCHjkedOvse1mhzWf1sikvSFQOHYVNSUzmWV" # Needed
deviceNAME = "<AppleDevice(iPhone 5s: David Smartphone)>" # Just an help
api.devices[deviceID].location()
api.devices[deviceID].status()
loc = api.devices[deviceID].location()
locstr = str(loc).replace("u'",'"').replace("'",'"') #.replace("}","")
但是当我尝试使用时
json.loads(locstr)
Python 给我:
Traceback(最近一次调用最后一次):文件“distancePAPA.py”,第 19 行, 在 t = json.loads(locstr) 文件“/usr/lib/python2.7/json/init.py”,第 339 行,加载中 在解码中返回 _default_decoder.decode(s) 文件“/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 ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
我真的不知道我做错了什么,所以我正在寻求帮助
PS1:我真的需要gps坐标 PS2:我是法国人,很抱歉搞错了。
【问题讨论】:
标签: python json string python-2.7 gps