Прямого способа сделать это нет.
Самый простой способ с обеих сторон - использовать строки JSON.
От LabVIEW до Python
Кластеры LabVIEW могутбыть сведено в JSON (Строки> Свести / отменить):
Полученную строку можно преобразовать в dict только в одну строку (плюс import
) python:
>>> import json
>>> myDict=json.loads('{"MyString":"FooBar","MySubCluster":{"MyInt":42,"MyFloat":3.1410000000000000142},"myIntArray":[1,2,3]}')
>>> myDict
{u'MyString': u'FooBar', u'MySubCluster': {u'MyInt': 42, u'MyFloat': 3.141}, u'myIntArray': [1, 2, 3]}
>>> myDict['MySubCluster']['MyFloat']
3.141
Из Python в LabVIEW
Сторона Python снова проста:
>>> MyJson = json.dumps(myDict)
В LabVIEW откройте JSON из строки и проводкластер ожидаемой структуры со значениями по умолчанию:
Это, конечно, требует, чтобы структура dict была фиксированной.Если это не так, вы все равно можете получить доступ к отдельным элементам, указав путь к ним в виде массива:
Ограничения:
Покаэто работает как талисман (вы даже заметили, что моя локаль использует запятую в качестве десятичного знака?), поддерживаются не все типы данных.Например, сам JSON не имеет ни типа данных времени, ни типа выделенного пути, и поэтому VI JSON отказываются обрабатывать их.Используйте числовой или строковый тип данных и преобразуйте его в LabVIEW.
Экскурс: тип данных dict-ish в LabVIEW
Если вам когда-нибудь понадобится динамический тип данных в LabVIEW, взгляните на атрибутыварианты.Это пары ключей (строка) и значений (любой тип данных!), Которые можно добавлять и считывать так же просто, как в Python.Но нет никакого (встроенного, простого) способа использовать это для обмена данными с Python.