write_dictT_write_dictWriteDictWriteDictwrite_dict (Operator)

Name

write_dictT_write_dictWriteDictWriteDictwrite_dict — Abspeichern eines Dictionaries in einer Datei.

Signatur

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

Herror T_write_dict(const Htuple DictHandle, const Htuple FileName, const Htuple GenParamName, const Htuple GenParamValue)

void WriteDict(const HTuple& DictHandle, const HTuple& FileName, const HTuple& GenParamName, const HTuple& GenParamValue)

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

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

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

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

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

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

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

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

Beschreibung

write_dictwrite_dictWriteDictWriteDictWriteDictwrite_dict speichert das Dictionary DictHandleDictHandleDictHandleDictHandledictHandledict_handle in der Datei FileNameFileNameFileNameFileNamefileNamefile_name ab.

Der Operator unterstützt die Dateiformate 'hdict'"hdict""hdict""hdict""hdict""hdict" und 'json'"json""json""json""json""json" (siehe read_dictread_dictReadDictReadDictReadDictread_dict). Das Format wird anhand der Dateiendung oder über den generischen Parameter 'file_type'"file_type""file_type""file_type""file_type""file_type" ausgewählt (siehe unten). Wenn beides den Typ nicht festlegt wird 'hdict'"hdict""hdict""hdict""hdict""hdict" verwendet.

Formatbedingt können im 'json'"json""json""json""json""json"-Dateiformat nicht alle in einem Dictionary möglichen Werte gespeichert werden. Insbesondere können keine ikonischen Objekte und keine Handles, die keine Dictionaries sind, gespeichert werden. Standardmäßig wirft der Operator einen Fehler, sollte in DictHandleDictHandleDictHandleDictHandledictHandledict_handle ein solches nicht-serialisierbares Element enthalten sein. Dieses Verhalten kann über den generischen Parameter 'raise_error_if_content_not_serializable'"raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable" angepasst werden (siehe unten).

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:

'raise_error_if_content_not_serializable'"raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable":

Wenn DictHandleDictHandleDictHandleDictHandledictHandledict_handle einen Eintrag enthält, der im Zielformat nicht serialisiert werden kann, bricht write_dictwrite_dictWriteDictWriteDictWriteDictwrite_dict standardmäßig mit einer Fehlermeldung ab. Dieses Verhalten kann durch diesen Parameter verändert werden, der zugehörige GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value kann folgende Werte annehmen:

'true'"true""true""true""true""true":

Das Standardverhalten, Fehler werden geworfen.

'false'"false""false""false""false""false":

Es wird kein Fehler geworfen. Je nach Dateityp wird z.B. ein leeres Handle ('hdict') oder gar nichts ('json') anstatt des nicht serialisierbaren Eintrags geschrieben.

'low_level'"low_level""low_level""low_level""low_level""low_level":

Wie bei 'false'"false""false""false""false""false", allerdings wird bei nicht serialisierbaren Einträgen zusätzlich ein Low-Level-Fehler geworfen. Der Umgang mit HALCON Low-Level-Fehlern wird durch 'do_low_error'"do_low_error""do_low_error""do_low_error""do_low_error""do_low_error" in set_systemset_systemSetSystemSetSystemSetSystemset_system bestimmt.

'file_type'"file_type""file_type""file_type""file_type""file_type":

Legt das zu schreibende Dateiformat fest. Der entsprechende Eintrag in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf 'hdict'"hdict""hdict""hdict""hdict""hdict" (Standardwert) oder 'json'"json""json""json""json""json" gesetzt werden. Ist dieser Parameter nicht gesetzt, wird der Typ aus der Dateiendung ermittelt. Ist diese nicht aussagekräftig, wird 'hdict'"hdict""hdict""hdict""hdict""hdict" verwendet.

'compact_json'"compact_json""compact_json""compact_json""compact_json""compact_json":

Legt fest, ob JSON-Dateien in einer kompakten Schreibweise ohne überflüssigen Whitespace oder von Menschen lesbar mit Zeilenumbrüchen und Einrückung geschrieben werden. In beiden Fällen enthält die Datei die gleiche inhaltliche Information. Der entsprechende Eintrag in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf 'true'"true""true""true""true""true" (Standardwert) oder 'false'"false""false""false""false""false" gesetzt werden.

'use_json_arrays'"use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays":

Legt fest, ob beim Schreiben von JSON-Dateien versucht werden soll, Dictionaries wenn möglich als JSON-Arrays zu schreiben. Dafür müssen die Dictionaries lediglich Integer-Schlüssel in von null an aufsteigender Reihenfolge beinhalten. Der entsprechende Eintrag in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value muss auf 'true'"true""true""true""true""true" (Standardwert) oder 'false'"false""false""false""false""false" gesetzt werden.

Ausführungsinformationen

Parameter

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

Handle des Dictionaries.

Parameteranzahl: DictHandle == 1

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

Dateiname der zu lesenden Datei.

Dateiendung: .hdict

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

Name des generischen Parameters.

Defaultwert: []

Werteliste: 'compact_json'"compact_json""compact_json""compact_json""compact_json""compact_json", 'file_type'"file_type""file_type""file_type""file_type""file_type", 'raise_error_if_content_not_serializable'"raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable""raise_error_if_content_not_serializable", 'use_json_arrays'"use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays""use_json_arrays"

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: 'hdict'"hdict""hdict""hdict""hdict""hdict", 'json'"json""json""json""json""json", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 'low_level'"low_level""low_level""low_level""low_level""low_level"

Ergebnis

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

Vorgänger

read_dictread_dictReadDictReadDictReadDictread_dict, deserialize_handledeserialize_handleDeserializeHandleDeserializeHandleDeserializeHandledeserialize_handle, create_dictcreate_dictCreateDictCreateDictCreateDictcreate_dict

Nachfolger

read_dictread_dictReadDictReadDictReadDictread_dict, create_dictcreate_dictCreateDictCreateDictCreateDictcreate_dict

Siehe auch

read_dictread_dictReadDictReadDictReadDictread_dict, serialize_handleserialize_handleSerializeHandleSerializeHandleSerializeHandleserialize_handle, deserialize_handledeserialize_handleDeserializeHandleDeserializeHandleDeserializeHandledeserialize_handle, dict_to_jsondict_to_jsonDictToJsonDictToJsonDictToJsondict_to_json

Modul

Foundation