Я только что начал использовать PyYAML для преобразования некоторых данных.Отключить преобразование значения PyYAML
Я просто использую функцию yaml.load
, и это было достаточно хорошо для меня, пока я не заметил, что он пытается преобразовать все значения в уникодированную строку, int, даты и так далее.
Это может быть фатально в моем приложении, есть ли способ избежать этого преобразования? Я хотел бы получить все как строки. Я посмотрел на конструкторы и не смог найти способ отключить это преобразование.
обновление: Что я получаю от yaml.load
является OrderedDict
и все выглядит хорошо. единственная проблема заключается в том, что некоторые значения являются строками, а некоторые - int. Я хотел бы иметь все значения как строки. Я не хочу, чтобы pyyaml менял значения для меня.
Тогда вы не декодирования YAML. Кроме того, ** что именно ** вы хотите оставить как струны, а что нет? Если вы оставите * все * строку, вы хотите 'the_file.read()' ;-) – delnan
Файл, который я использую pyyaml для разбора, на самом деле не yaml, но он достаточно близко. Поэтому я хочу избежать преобразования типов. – theAlse
но * какой * вид type изменение? Вы хотите получать списки? Словари? Вы хотите, чтобы булевы были преобразованы? Плавает? На произвольную глубину или с фиксированным форматом? Как бы то ни было, это слишком недооценивается. – delnan