gpt4 book ai didi

python - 如何从 yml 文件获取数据,然后作为字典返回

转载 作者:太空宇宙 更新时间:2023-11-03 15:10:02 25 4
gpt4 key购买 nike

我有一个 python 函数,可以打开 YAML 文件并读取数据。 YAML 文件包含两个 api key 和一个域。我想返回字典中的每个值,以便可以在程序中使用它。但是我收到错误

"list indices must be integers, not str".

我应该将变量设置为全局变量,这样它就不必返回任何内容吗?

代码是:

def ImportConfig():
with open("config.yml", 'r') as ymlfile:
config = yaml.load(ymlfile)
darksky_api = config['darksky']['api_key']
gmaps_api = ['gmaps']['api_key']
gmaps_domain = ['gmaps']['domain']
return {'darksky_api_key': darksky_api, 'gmaps_api_key': gmaps_api, 'gmaps_domain': gmaps_domain }

列表索引必须是整数是什么意思?我以为大括号表示字典?还有更好的方法吗?

最佳答案

独立于您的 yaml 文件,如果您在 Python 提示符下键入 ['xy'],您将创建一个包含一个元素的列表,然后使用另一个字符串对其进行索引:

['xy']['abc']

你会得到这个错误。

您的程序第 5 行和第 6 行缺少 config:

def ImportConfig():
with open("config.yml", 'r') as ymlfile:
config = yaml.safe_load(ymlfile)
darksky_api = config['darksky']['api_key']
gmaps_api = config['gmaps']['api_key']
gmaps_domain = config['gmaps']['domain']
return {'darksky_api_key': darksky_api, 'gmaps_api_key': gmaps_api, 'gmaps_domain': gmaps_domain }

请注意,在 PyYAML 中使用 load 存在安全风险,对于您的数据,您应该使用 safe_load()

关于python - 如何从 yml 文件获取数据,然后作为字典返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44291896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com