从For循环中的另一个字典创建Python字典

2024-05-15 08:57:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前有一个从csv文件导入的字典,我已将其转换为变量列表。原始词典如下所示:

  • server01,server01.fqdn:端口
  • server02,server02.fqdn:端口
  • server03,server03.fqdn:端口
  • server04,server04.fqdn:端口

我想做的是创建另一个字典,使用与现有字典相同的键值(即服务器名称),并使用服务器的FQDN,使用python请求获取一个值。这将创建一个这样的字典,然后我可以将它插入MySQL:

  • server01 0.0 0.0 2020-07-06 19:59:42
  • server02 0.0 0.0 2020-07-06 19:59:42
  • 服务器03 0.0 0.0 2020-07-06 19:59:42
  • server04 0.0 0.0 2020-07-06 19:59:42

我可以用这个将结果打印到屏幕上,但是我如何将它插入到新的词典中呢

curtime = ('{:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.utcnow()))

for key, value in sorted(dict.items()):
    print key, fc_grab(value), fs_grab(value), curtime

谢谢,

肖恩


Tags: csv端口key服务器datetime字典value词典
3条回答
curtime = ('{:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.utcnow()))

results = dict()

for key, value in sorted(dict.items()):
    results[key] = {
        "fc": fc_grab(value),
        "fs": fs_grab(value),
        "curtime": curtime
    }

基本上,您需要一个Dict列表或Dict-of-Dict来插入MYSQL

curtime = ('{:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.utcnow()))
rows = {key:{  
               "fc":fc_grab(value),
               "fs":fs_grab(value),
               "curtime":curtime
           }for key, value in sorted(dict.items())}

而不是这个,

print key, fc_grab(value), fs_grab(value), curtime

你能行

output_dictionary[key] = "{} {} {}".format(fc_grab(value), fs_grab(value), curtime)

假设你在开始的时候

output_dictionary = {}

如果您不想像打印内容那样将值保存为字符串,那么还有其他可能性

比如你可以做什么

output_dictionary[key] = (fc_grab(value), fs_grab(value), curtime)

然后,您只需放置一个包含三个值的元组,如果需要,您可以随时将它们格式化为字符串,但如果需要,您可以操作实际的数据项(特别是如果它们不仅仅是字符串)

顺便说一句,您可能需要更新到python3——显然,从您的print语句可以看出您正在使用python2

相关问题 更多 >