バックグラウンド:
JSONで次のデータ構造の例があります。
{'sensor' : [
{'assertions_enabled': 'ucr+',
'deassertions_enabled': 'ucr+',
'entity_id': '7.0',
'lower_critical': 'na',
'lower_non_critical': 'na',
'lower_non_recoverable': 'na',
'reading_type': 'analog',
'sensor_id': 'SR5680 TEMP (0x5d)',
'sensor_reading': {'confidence_interval': '0.500',
'units': 'degrees C',
'value': '42'},
'sensor_type': 'Temperature',
'status': 'ok',
'upper_critical': '59.000',
'upper_non_critical': 'na',
'upper_non_recoverable': 'na'}
]}
センサーリストには、実際にはセンサー情報を含むこれらのdictの多くが含まれます。
問題:
jsonpathを使用してリストをクエリし、センサーdictのサブセットを返そうとしていますが、sensor_type=='Temperature'
返されます'False'
(一致しません)。これが私のjsonpath式です:
results = jsonpath.jsonpath(ipmi_node, "$.sensor[?(@.['sensor_type']=='Temperature')]")
フィルタ式を削除して使用する"$.sensor.*"
と、すべてのセンサーのリストが表示されるので、問題はフィルタ式にあると確信しています。
例として複数のサイト/投稿をスキャンしましたが、Pythonに固有のものが見つからないようです(JavascriptとPHPの方が目立つようです)。誰かがいくつかのガイダンスを提供できますか?