read_dictT_read_dictReadDictReadDictread_dict (Operator)

Name

read_dictT_read_dictReadDictReadDictread_dict — Lesen eines Dictionaries aus einer Datei.

Signatur

read_dict( : : FileName, GenParamName, GenParamValue : DictHandle)

Herror T_read_dict(const Htuple FileName, const Htuple GenParamName, const Htuple GenParamValue, Htuple* DictHandle)

void ReadDict(const HTuple& FileName, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DictHandle)

void HDict::HDict(const HString& FileName, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDict::HDict(const HString& FileName, const HString& GenParamName, const HString& GenParamValue)

void HDict::HDict(const char* FileName, const char* GenParamName, const char* GenParamValue)

void HDict::HDict(const wchar_t* FileName, const wchar_t* GenParamName, const wchar_t* GenParamValue)   (Nur Windows)

void HDict::ReadDict(const HString& FileName, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDict::ReadDict(const HString& FileName, const HString& GenParamName, const HString& GenParamValue)

void HDict::ReadDict(const char* FileName, const char* GenParamName, const char* GenParamValue)

void HDict::ReadDict(const wchar_t* FileName, const wchar_t* GenParamName, const wchar_t* GenParamValue)   (Nur Windows)

static void HOperatorSet.ReadDict(HTuple fileName, HTuple genParamName, HTuple genParamValue, out HTuple dictHandle)

public HDict(string fileName, HTuple genParamName, HTuple genParamValue)

public HDict(string fileName, string genParamName, string genParamValue)

void HDict.ReadDict(string fileName, HTuple genParamName, HTuple genParamValue)

void HDict.ReadDict(string fileName, string genParamName, string genParamValue)

def read_dict(file_name: str, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle

Beschreibung

read_dictread_dictReadDictReadDictReadDictread_dict liest ein Dictionary aus der durch FileNameFileNameFileNameFileNamefileNamefile_name gegebenen Datei und gibt das Handle des Dictionaries in DictHandleDictHandleDictHandleDictHandledictHandledict_handle zurück.

Der Operator unterstützt die folgenden Dateiformate:

'hdict'"hdict""hdict""hdict""hdict""hdict":

Binäres HALCON-Format für Dictionaries. Dateien dieses Typs können mit write_dictwrite_dictWriteDictWriteDictWriteDictwrite_dict geschrieben werden. Die Standard-Dateiendung für dieses Format ist 'hdict'.

'json'"json""json""json""json""json":

JSON (JavaScript Object Notation) Dateiformat. Die Standard-Dateiendung für dieses Format ist 'json'.

Falls keine Datei mit dem angegebenen Namen existiert, sucht der Operator durch Anhängen der Standard-Dateiendungen nach der Datei. Der Dateityp wird automatisch aus der Dateiendung und dem Dateiinhalt erkannt (welche übereinstimmen müssen).

Eine Reihe weiterer optionaler Parameter kann gesetzt werden. Die Namen und Werte dieser Parameter werden in GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value übergeben. Einige der Parameter gelten nicht für alle Dateitypen. Die folgenden Werte sind für GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name möglich:

'json_value_true'"json_value_true""json_value_true""json_value_true""json_value_true""json_value_true", 'json_value_false'"json_value_false""json_value_false""json_value_false""json_value_false""json_value_false", 'json_value_null'"json_value_null""json_value_null""json_value_null""json_value_null""json_value_null":

Setzt die für JSON-Primitive verwendeten Werte. Gültige JSON-Primitive sind 'true', 'false' und 'null'. Wenn ein solches Primitiv in einer JSON-Datei gefunden wird, wird der entsprechende Eintrag im Dictionary auf den mit diesen Parametern gesetzten Wert gesetzt. Der Wert wird in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value übergeben und muss ein Tupel der Länge 1 sein.

Standardmäßig werden die Primitive auf folgende Werte abgebildet: 1 für 'true', 0 für 'false' und 'HNULL'"HNULL""HNULL""HNULL""HNULL""HNULL" für 'null'. Diese Parameter haben nur einen Einfluss, wenn eine JSON-Datei gelesen wird.

'convert_json_arrays_to'"convert_json_arrays_to""convert_json_arrays_to""convert_json_arrays_to""convert_json_arrays_to""convert_json_arrays_to":

Mit diesem Parameter kann eingestellt werden, in welchen HALCON-internen Datentyp JSON-Arrays konvertiert werden sollen. Mögliche Werte für GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value sind:

'dict'"dict""dict""dict""dict""dict" (Standardwert):

JSON-Arrays werden in HALCON-Dictionaries konvertiert, mit von 0 an aufsteigenden Integer-Schlüsseln. Dies ist immer möglich, beispielsweise auch wenn das JSON-Array weitere Arrays als Einträge enthält, benötigt aber möglicherweise mehr Speicher als wenn die Daten in einem HALCON-Tupel gehalten werden.

'tuple'"tuple""tuple""tuple""tuple""tuple":

JSON-Arrays werden in HALCON-Tupel konvertiert. Falls dies nicht möglich ist, etwa bei Arrays die selber wieder Arrays enthalten, wird ein Fehler geworfen.

'tuple_if_possible'"tuple_if_possible""tuple_if_possible""tuple_if_possible""tuple_if_possible""tuple_if_possible":

JSON-Arrays werden dann in HALCON-Tupel konvertiert, wenn dies verlustfrei möglich ist. Andernfalls werden sie als HALCON-Dictionaries zurückgegeben.

Bei Verwendung dieser Möglichkeit ist zu beachten, dass sich der Aufbau des gelesenen Dictionaries je nach den enthaltenen JSON-Daten ändern kann, auch wenn diese dem gleichen Schema folgen. Beispielsweise wird ein Array von 2D-Punktkoordinaten in der Form '{"pt": [[1,2], [3,4]]}'"{"pt": [[1,2], [3,4]]}""{"pt": [[1,2], [3,4]]}""{"pt": [[1,2], [3,4]]}""{"pt": [[1,2], [3,4]]}""{"pt": [[1,2], [3,4]]}" umgewandelt in ein äußeres Dictionary, welches zwei Tupel enthält. Falls unter dem gleichen Schema aber keine Punkte enthalten sind, das JSON also die Form '{"pt": []}'"{"pt": []}""{"pt": []}""{"pt": []}""{"pt": []}""{"pt": []}" hat, so wird statt dem äußeren Dictionary ein Tupel erzeugt. Der verwendende Code muss auf diesen möglichen Wechsel vorbereitet sein.

Ausführungsinformationen

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Parameter

FileNameFileNameFileNameFileNamefileNamefile_name (input_control)  filename.read HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Dateiname der zu lesenden Datei.

Dateiendung: .hdict, .json

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Name des generischen Parameters.

Defaultwert: []

Werteliste: 'convert_json_arrays_to'"convert_json_arrays_to""convert_json_arrays_to""convert_json_arrays_to""convert_json_arrays_to""convert_json_arrays_to", 'json_value_false'"json_value_false""json_value_false""json_value_false""json_value_false""json_value_false", 'json_value_null'"json_value_null""json_value_null""json_value_null""json_value_null""json_value_null", 'json_value_true'"json_value_true""json_value_true""json_value_true""json_value_true""json_value_true"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.name(-array) HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Wert des generischen Parameters.

Defaultwert: []

Wertevorschläge: 0, 1, 'HNULL'"HNULL""HNULL""HNULL""HNULL""HNULL", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 'dict'"dict""dict""dict""dict""dict", 'tuple'"tuple""tuple""tuple""tuple""tuple", 'tuple_if_possible'"tuple_if_possible""tuple_if_possible""tuple_if_possible""tuple_if_possible""tuple_if_possible"

DictHandleDictHandleDictHandleDictHandledictHandledict_handle (output_control)  dict HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Dictionaries.

Parameteranzahl: DictHandle == 1

Ergebnis

Sind die Parameterwerte korrekt, dann liefert read_dictread_dictReadDictReadDictReadDictread_dict den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

write_dictwrite_dictWriteDictWriteDictWriteDictwrite_dict

Alternativen

json_to_dictjson_to_dictJsonToDictJsonToDictJsonToDictjson_to_dict, create_dictcreate_dictCreateDictCreateDictCreateDictcreate_dict

Siehe auch

write_dictwrite_dictWriteDictWriteDictWriteDictwrite_dict, serialize_handleserialize_handleSerializeHandleSerializeHandleSerializeHandleserialize_handle, deserialize_handledeserialize_handleDeserializeHandleDeserializeHandleDeserializeHandledeserialize_handle

Modul

Foundation