使字典按参数链接到选定的值?

时间:2017-01-19 21:54:40

标签: python xml dictionary

目标是自动/定期制作一个XML文件,其中包含从Domoticz'数据中选择的动态值,如Python脚本中的其他地方所示。产生的XML文件如下所示。

<response>
  <value1>0.0</value1>
  <value2>10.0</value2>
  <value3>10.0</value3>
  <value4>0.0</value4>
  <value5>0.00</value5>
  <time_stamp>20161215 20:44</time_stamp>
</response>

为了制作这样的XML文件,Python中的起点可能是字典,因为通过dicttoxml从字典中你可以轻松地制作XML文件。

问题那么:如何编译一个字典,该字典在参数上包含来自Domoticz的选定动态值,并且可以被dicttoxml读取?

在我看来,这意味着:

  1. 为字典制作默认列表结构

  2. 该结构中的值由参数

  3. 表示
  4. 要链接到Python脚本中可用选定值的参数

  5. 读出函数填充参数,加上字典生成

  6. 正确/可行的方法? 任何已知/可用的Python脚本实现了作业/序列?

1 个答案:

答案 0 :(得分:0)

与Python词典相关的一些进一步搜索提供了足够的提示来制作脚本,作为用于kWh-meter类型DDS238-1ZN的读出脚本的扩展进行测试。该脚本提供了到字典的动态链接。

它证明第一个问题中提到的概念是正确的。

# --------------------------------------------------
# Make XML-file for DDS238-1ZN Read-out
# --------------------------------------------------
# Take care of extra dependencies
import dicttoxml
# Create the default dictionary
DDS238_dict = {'gauge_power': 1.2, 'gauge_temp': 20.4, 'gauge_vpv': 150, 'gauge_iac': 1.5, 'energy_today': 2.5, 'energy_total': 45.00, 'time_stamp': 0}
print(DDS238_dict)
# Link the directory to dynamic values in the Python-script (or fill-in placeholder values)
DDS238_dict['gauge_power'] = ActivPower
DDS238_dict['gauge_temp'] = 20.1
DDS238_dict['gauge_vpv'] = VOLTAGE
DDS238_dict['gauge_iac'] = CURRENT
DDS238_dict['energy_today'] = Wh_today
DDS238_dict['energy_total'] = Wh_life
DDS238_dict['time_stamp'] = now
print(DDS238_dict)
# Convert dictionary to XML-file
DDS238_xml = dicttoxml.dicttoxml(DDS238_dict)
print(DDS238_xml)

显然,打印线是可选的(用于测试)。

;-)很简单,如果你知道........