我正在运行一个脚本(Python2.7),它从我的Husqvarna Automower收集数据 我想在变量中存储一些信息来打印输出,但我似乎想要得到的信息是在一个子句中(不知道那是不是正确的术语)
如果我在脚本pp.pprint(mow.status())
我明白了
{ u'batteryPercent': 99,
u'cachedSettingsUUID': u'59a88728-804a-47b6-824c-d2b093bd980e',
u'connected': False,
u'lastErrorCode': 0,
u'lastErrorCodeTimestamp': 0,
u'lastLocations': [ { u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57352,
u'longitude': 12.047441666666666},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573521666666664,
u'longitude': 12.047431666666666},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573535,
u'longitude': 12.047445},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57356333333333,
u'longitude': 12.047563333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573573333333336,
u'longitude': 12.047613333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57349,
u'longitude': 12.047508333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573485,
u'longitude': 12.047495},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57347166666667,
u'longitude': 12.047833333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57348833333333,
u'longitude': 12.047818333333334},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573526666666666,
u'longitude': 12.047773333333334},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573526666666666,
u'longitude': 12.047771666666666},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57357666666667,
u'longitude': 12.047841666666667},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57354333333333,
u'longitude': 12.047875},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57358333333333,
u'longitude': 12.047835},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57357666666667,
u'longitude': 12.047818333333334},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573635,
u'longitude': 12.047693333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57364666666667,
u'longitude': 12.04762},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57359,
u'longitude': 12.04724},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57359,
u'longitude': 12.047235},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57350666666667,
u'longitude': 12.047486666666666},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.5735,
u'longitude': 12.047553333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57351666666667,
u'longitude': 12.047533333333334},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57351666666667,
u'longitude': 12.04756},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57353333333333,
u'longitude': 12.047541666666667},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57353,
u'longitude': 12.047571666666666},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57346,
u'longitude': 12.047595},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57346,
u'longitude': 12.04761},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573431666666664,
u'longitude': 12.04773},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573435,
u'longitude': 12.047711666666666},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57346833333333,
u'longitude': 12.047578333333334},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573495,
u'longitude': 12.047641666666667},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57349333333333,
u'longitude': 12.04764},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57347333333333,
u'longitude': 12.047643333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57346833333333,
u'longitude': 12.04771},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573478333333334,
u'longitude': 12.047773333333334},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57325,
u'longitude': 12.047635},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57324833333333,
u'longitude': 12.047635},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57324166666667,
u'longitude': 12.047633333333334},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57324166666667,
u'longitude': 12.047631666666666},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573285,
u'longitude': 12.047618333333334},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573301666666666,
u'longitude': 12.047596666666667},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573303333333335,
u'longitude': 12.047595},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57331166666667,
u'longitude': 12.047561666666667},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573315,
u'longitude': 12.047555},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57331666666666,
u'longitude': 12.047555},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57333833333333,
u'longitude': 12.047551666666667},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.57342166666667,
u'longitude': 12.047566666666667},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573365,
u'longitude': 12.047553333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573366666666665,
u'longitude': 12.047553333333333},
{ u'gpsStatus': u'USING_GPS_MAP',
u'latitude': 57.573346666666666,
u'longitude': 12.047558333333333}],
u'mowerStatus': u'OFF_DISABLED',
u'nextStartSource': u'WEEK_TIMER',
u'nextStartTimestamp': 1491782400,
u'operatingMode': u'AUTO',
u'showAsDisconnected': False,
u'storedTimestamp': 1491435026887L,
u'valueFound': True}
我可以使用
获取batteryPercent dic_info = mow.status()
Battery = dic_info.get('batteryPercent')
print Battery
但我如何以类似的方式获得经度和纬度,我只需要第一个?
Thanx Martin
答案 0 :(得分:0)
您只需访问包含lastLocations
的{{1}}即可。当你到达那里时,只需访问位置list of dicts
中的元素,然后使用[0]
或['latitude']
来获取其特定值。
['longitude']
您可以将d = dict(mow.status())
>>> print(d['lastLocations'][0])
{'latitude': 57.57352, 'gpsStatus': 'USING_GPS_MAP', 'longitude': 12.047441666666666}
>>> print(d['lastLocations'][0]['latitude'])
57.57352
>>> print(d['lastLocations'][0]['longitude'])
12.047441666666666
的索引更改为print(d['lastLocations'][0]
或[1]
,以访问此[2]
的第二个和第三个元素。
list
{u'gpsStatus': u'USING_GPS_MAP', u'latitude': 57.573521666666664, u'longitude': 12.047431666666666}
P.s。:您可以使用{u'gpsStatus': u'USING_GPS_MAP', u'latitude': 57.573535, u'longitude': 12.047445}
获取print(len(d['lastLocations']))
列表中的元素数量。
lastLocations
现在你知道你不能使用大于>>> print(len(d['lastLocations']))
50
的{{1}},换句话说,index
。