[英]python writing to file exception occurs
使用下面的代碼時出現“字符串索引必須是整數”錯誤。
global general_keys
general_keys = dict()
all_keys = {'activity': 'ins','install': 'all','aws.a': 'data', 'aws.b': 'data1', 'aws.c': 'data2'}
general_key_array = ['install','db_manager', 'aws.']
for key in general_key_array:
for s in all_keys:
if s.startswith(key):
general_keys.update(dict(filter(lambda item: s in item[0], all_keys.items())))
文件寫入部分:
f.write("{0}{1}{2}".format("install=", general_keys['install']['install'], "\n"))
f.write("{0}{1}{2}".format("database_management_user=", general_keys['db_manager']['db_manager'], "\n"))
for key, value in general_keys['aws.'].items():
f.write("{0}{1}{2}{3}".format(key, "=", value, "\n"))
預期輸出:
install=all
aws.a=data
aws.b=data1
aws.c=data2
您不是在創建嵌套字典。 您正在創建的general_keys
的值是:
{'install': 'all', 'aws.a': 'data', 'aws.b': 'data1', 'aws.c': 'data2'}
要創建所需的嵌套字典,請使用。
from collections import defaultdict
general_keys = defaultdict(dict)
all_keys = {'activity': 'ins','install': 'all','aws.a': 'data', 'aws.b': 'data1', 'aws.c': 'data2'}
general_key_array = ['install','db_manager', 'aws.']
for key1 in general_key_array:
for key2, value in all_keys.items():
if key2.startswith(key1):
general_keys[key1][key2] = value
print(dict(general_keys))
輸出:
{
'install': {'install': 'all'},
'aws.': {'aws.a': 'data', 'aws.b': 'data1', 'aws.c': 'data2'}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.