Я использовал исправление, представленное в YAML загружает 5e-6 как строку, а не число для правильной загрузки в python числа, представленные в нотации scientifi c в файле yaml.
У меня также есть комплексные числа в моем файле yaml. Эти числа могут иметь различное количество пробелов (например, 2 + 2j или 2 + 2j и т. Д. c). Комплексные числа в настоящее время считываются как строки (так же, как числа в нотации scientifi c считывались как строки до исправления, на которое ссылались выше). Я хотел бы знать, как изменить аргумент add_implicit_resolver в исправлении для правильного чтения комплексных чисел. В идеале я хотел бы продолжать использовать pyyaml.
Более конкретно, если у меня есть запись в моем файле yaml, такая как:
offset: 2 + 1j
Я бы хотел, чтобы это распознавалось как комплексное число (класса complex):
2+1j
В настоящее время значением в словаре python, соответствующем ключу 'offset', является строка:
'2 + 1j'
который я должен вручную преобразовать в комплексное число с помощью:
complex('2 + 1j'.replace(' ', ''))
Я хочу автоматизировать этот процесс, изменив аргумент для add_implicit_resolver, используя ту же стратегию, что и в ссылке выше для работы с числами в scientifi c нотация.
Что касается spe c, да, в общем, действительная и мнимая части комплексного числа могут быть в scientifi c нотации: (например, '2e-3 + 1,3e-4j '). Я в порядке с ограничением формата, чтобы иметь конечный j для мнимой части. Без вкладок, без перевода строки, только отдельные пробелы. Реальная или мнимая часть может отсутствовать и может быть выражена как целые числа или числа с плавающей запятой.