Как получить значение из набора с ключом, содержащим одинарную кавычку, загруженную с помощью YAML? - PullRequest
0 голосов
/ 14 июля 2020

Не удалось найти материала по этому вопросу.

У меня есть файл yaml, содержащий:

items :
- "jeweller's orb"

Затем я загружаю его:

with open('./configs/items.yaml') as f:
    data = yaml.safe_load(f)
self.item_set = set([x.upper() for x in data['items']])

Сейчас как мне получить доступ к набору с ключом, содержащим одинарную кавычку ?? Я пробовал избежать этого, двойное одинарное цитирование, ничего не работает ...

print('JEWELLER\’S ORB' in self.item_set)
print("JEWELLER\’S ORB" in self.item_set)
print('JEWELLER’S ORB' in self.item_set)
print("JEWELLER’S ORB" in self.item_set)
print(r'JEWELLER’S ORB' in self.item_set)
print(r"JEWELLER’S ORB" in self.item_set)

Все они возвращают false. Что-то с yaml за кулисами, о котором я не знаю ??

Я пробовал также скопировать вывод переменных в self.item_set и напрямую использовать его в печати. По-прежнему ничего.

РЕДАКТИРОВАТЬ: Ответ был

with open('./configs/items.yaml', 'rt', encoding='utf8') as f:

А также использование начальной версии с одной кавычкой в ​​yaml вместо прямой одиночной кавычки. Вау, какая боль.

1 Ответ

0 голосов
/ 14 июля 2020
with open('./configs/items.yaml', 'rt', encoding='utf8') as f:

А также использование в yaml версии с открывающей одинарной кавычкой вместо прямой одинарной кавычки. Вау, какая боль.

...