загрузка комплексных чисел из файла yaml в python - PullRequest
0 голосов
/ 08 января 2020

Я использовал исправление, представленное в 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 для мнимой части. Без вкладок, без перевода строки, только отдельные пробелы. Реальная или мнимая часть может отсутствовать и может быть выражена как целые числа или числа с плавающей запятой.

...