Как я могу получить доступ к данным YAML из файла Python? - PullRequest
0 голосов
/ 17 января 2020

В настоящее время я делаю Discord Bot с помощью discord.py и имеет настройки YAML. Вот краткая конфигурация YAML, взятая из моего файла "hartexConfig.yaml":

general:
    hartexToken = 'the bot token'

, затем я пытаюсь получить к нему доступ в файле hartex.py:

class Hartex(discord.Client):
    def __init__(self, *args, **kwargs):
        super().__init__()

    hartexTokenValue = open('HarTex/hartexConfig.yaml', 'r')

    hartexToken = hartexTokenValue['general']['hartexToken']

    yamlStream = True

Как я могу сделать это или я совершенно не прав?

PS Я имел в виду доступ к конкретному c фрагменту данных, как в этом случае, я хочу прочитать ТОЛЬКО hartexToken из файла YAML.

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Вы уверены, что ямл правильный? = должно быть :; в таком виде ключ будет general и его значение hartexToken = 'the bot token':

(необходимо установить pyyaml)

pip install pyyaml


>>> import yaml
>>> with open('demo.yaml','r') as f:
...    datamap = yaml.safe_load(f)
... 
>>> datamap
{'general': "hartexToken = 'the bot token'"}

Если yaml действительно такой, как вы говорите, это Вы можете, конечно, split значение, чтобы получить «токен бота».

>>> datamap['general'].split('=')[1]
" 'the bot token'"
0 голосов
/ 17 января 2020
import yaml

class Hartex(discord.Client):
    def __init__(self, *args, **kwargs):
        super().__init__()

    with open('HarTex/hartexConfig.yaml', 'r') as hartexConfig:
        # this is the part where your config is actually parsed
        hartexTokenValue = yaml.safe_load(hartexConfig) 

    hartexToken = hartexTokenValue['general']['hartexToken']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...