私はHufmanのHoneywell Pythonコードを使用してMyTotalConnectComfortウェブサイトからデータを取得しています。コードはhereです。私は2.7のコードを修正しました。私はフラスコを使用しています。はjson.loadのネストされた値にアクセスする必要があります
私はclient.locations()を呼び出すと、6つのキーを持つjsonファイルが返されます。私はjson内のデータを壊して、私が望む単一の鍵の後ろにあるデータを取得します。これは「Devices」です。私はこれを行うには、次のコードを使用します。私はこのスレッドの一番下にあるデータやフォーマットされたリストを取り戻す
Honeywelldata = client.locations()
newlist2 = []
dada = {}
for keyl, value in Honeywelldata[0].items():
if keyl == "Devices":
dada[keyl] = value
print "dadakey", dada[keyl]
newlist2.append(dada)
print "newlist2 keys", newlist2[0].keys()
print "newlist2", json.dumps(newlist2, sort_keys=True,indent=4,separators=(',', ': '))
。私はこのjsonをhtmlに渡して、このリストから値を投稿するために次のhtmlコードを使用できるようにしようとしています。私は多くのことを試しましたが、私は「デバイス」の子供の価値に到達できません。
{{ honeywell.Devices.ThermostatData.Outdoorhumidity | safe }}
は、私は私がする再キーこのリストまたは私が間違っているの何初心者というの横にが必要です。このエラーUndefinedError: 'list object' has no attribute 'Devices'
を得続けます。ありがとう。ここ
はnewlist2キー&データ(jsonlint.comが有効なJSONとしてこれを示す)
newlist2 keys [u'Devices']
[{
"Devices": [{
"AlertSettings": null,
"DehumidifierData": null,
"DemandResponseData": null,
"DeviceID": 1111111,
"DeviceType": 48,
"FanData": null,
"HasAlertSettings": false,
"HasDehumidifier": false,
"HasFan": false,
"HasHumidifier": false,
"HasUIData": true,
"HoldUntilCapable": true,
"HumidifierData": null,
"IsAlive": true,
"IsUpgrading": false,
"LocationID": 1111111,
"MacID": "000000000000",
"Name": "THERMOSTAT",
"Schedule": null,
"ScheduleCapable": true,
"ThermostatData": {
"AllowedModes": [
3,
1,
2
],
"CoolRate": null,
"CoolSetpoint": null,
"Deadband": 0.0,
"DisplayUnits": 1,
"EquipmentOutputStatus": null,
"HeatRate": null,
"HeatSetpoint": null,
"IndoorHumidity": 39.0,
"IndoorHumidityStatus": 0,
"IndoorTemperature": 74.0,
"IndoorTemperatureStatus": 0,
"IsCommercial": false,
"IsInVacationHoldMode": false,
"MaxCoolSetpoint": 99.0,
"MaxHeatSetpoint": 90.0,
"MinCoolSetpoint": 50.0,
"MinHeatSetpoint": 40.0,
"Mode": null,
"NextTime": null,
"OutdoorHumidity": 13.0,
"OutdoorHumidityAvailable": true,
"OutdoorHumidityStatus": 0,
"OutdoorTemperature": 103.0,
"OutdoorTemperatureAvailable": true,
"OutdoorTemperatureStatus": 0,
"ScheduleCoolSp": 75.0,
"ScheduleHeatSp": 62.0,
"Status": null,
"VacationHold": null,
"VacationHoldCancelable": true
}
}]
}である]
リストの場合、属性を取ってはいけません...インデックスを取るべきです... – Mangohero1
ちょうど私が知っている - なぜ否定的な投票? – bburwell