需要访问json.load中的嵌套值

时间:2017-10-24 23:24:23

标签: python json flask honeywell

我正在使用Hufman的Honeywell Python代码从MyTotalConnectComfort网站提取数据。代码是here。我修改了2.7的代码。我也在使用Flask。

当我调用client.locations()时,我得到一个有6个键的json文件。我削减了json中的数据,以获得我想要的单个键背后的数据,即“设备”。我使用以下代码执行此操作:

<body>
  <main>
    <section>
      <!-- Top part-->
      <span>
			<img src="https://www.w3schools.com/css/img_fjords.jpg"/> </span>
      <!-- Bottom part-->
      <summary>
        <button>show paragraph</button>
        <h2>Moe</h2>
        <h3>leeg</h3>
        <p>De buschauffeur port me wakker. We zijn bij de eindhalte, Centraal Station. Ik stap uit en duw de kinderwagen voort waarin mijn zoon ligt te slapen. Ik wou dat ik hem was. De mensen lopen in zichzelf gekeerd over het plein. De regen doet z’n best
          mij wakker te houden, maar mijn oogleden voelen zwaar, alsof er een stel verveelde kaboutertjes aan lopen te trekken. <a href="#">lees meer</a> </p>
        <footer>6 Minuten</footer>
      </summary>
    </section>
  </main>
</body>

我在这个帖子的底部找回数据和格式化列表。我试图能够将此json传递给html,然后使用以下html代码从此列表中发布值。我尝试了很多东西,但我无法达到'设备'的子值。

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=(',', ': '))

我一直收到此错误{{ honeywell.Devices.ThermostatData.Outdoorhumidity | safe }}

我是否需要重新键入此列表或者除了成为新手之外我做错了什么。感谢。

这是newlist2键和&amp;数据(jsonlint.com将其显示为有效的json)

UndefinedError: 'list object' has no attribute 'Devices'

}]

2 个答案:

答案 0 :(得分:1)

在下面的表达式中(我假设它是一个Django模板片段和 - 或Jinja2表达式:

{{ honeywell.Devices.ThermostatData.Outdoorhumidity | safe }}

变量honeywell似乎是list。你可以尝试:

{{ honeywell[0].Devices[0].ThermostatData.Outdoorhumidity | safe }}

获取此列表的第一个元素。

答案 1 :(得分:0)

{{ honeywell.Devices.ThermostatData.Outdoorhumidity | safe }}

霍尼韦尔是list类型。确保你指的是正确的对象。