如何从python字典中删除额外的键

2024-03-28 17:44:02 发布

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

我想从输出中删除额外的密钥,但不确定如何删除。你知道吗

额外键('DiskStatus', {'DiskStatus':[

预期键('DiskStatus': [

测试.csv

test.csv
/,9.8G,6.8G,27%
/home,4.8G,3.6G,22%
/opt,9.8G,5.2G,44%
/tmp,3.9G,3.6G,2%

代码

import csv
from collections import OrderedDict
import collections
import socket
type = 'STATUS'
hostname =  socket.gethostname()
hotst = {}.fromkeys(['ServerName'],hostname)
type = {}.fromkeys(['type'],type)
disk_status = {'DiskStatus': []}
header = ['Mount', 'Total', 'available', 'used']
with open('test.csv') as infile:
    reader = csv.reader(infile)
    for line in reader:
        #updated line
        disk_status["DiskStatus"].append(collections.OrderedDict(zip(header, line)))

status = dict(hotst.items() + type.items())
order = collections.OrderedDict(status)
new_dict = collections.OrderedDict()
new_dict["ServerName"]=status["ServerName"]
new_dict["type"]=status["type"]
new_dict["DiskStatus"]=disk_status
print new_dict

代码输出

OrderedDict([('ServerName', 'dlccwsdigdsu03'), ('type', 'STATUS'), ('DiskStatus', {'DiskStatus': [OrderedDict([('Mount', '/'), ('Total', '9.8G'), ('available', '6.8G'), ('used', '27%')]), OrderedDict([('Mount', '/home'), ('Total', '4.8G'), ('available', '3.6G'), ('used', '22%')]), OrderedDict([('Mount', '/opt'), ('Total', '9.8G'), ('available', '5.2G'), ('used', '44%')]), OrderedDict([('Mount', '/tmp'), ('Total', '3.9G'), ('available', '3.6G'), ('used', '2%')])]})])

预期产量

OrderedDict([('ServerName', 'dlccwsdigdsu03'), ('type', 'STATUS'), ('DiskStatus': [OrderedDict([('Mount', '/'), ('Total', '9.8G'), ('available', '6.8G'), ('used', '27%')]), OrderedDict([('Mount', '/home'), ('Total', '4.8G'), ('available', '3.6G'), ('used', '22%')]), OrderedDict([('Mount', '/opt'), ('Total', '9.8G'), ('available', '5.2G'), ('used', '44%')]), OrderedDict([('Mount', '/tmp'), ('Total', '3.9G'), ('available', '3.6G'), ('used', '2%')])]})])

Tags: csvimporthomenewtypestatuscollectionsdict
1条回答
网友
1楼 · 发布于 2024-03-28 17:44:02

假设您想要('DiskStatus', [...])而不是('DiskStatus': [...])(逗号和冒号,后者在Python中是无效语法),您可以从原始字典中取出值:

new_dict["DiskStatus"] = disk_status["DiskStatus"]

相关问题 更多 >