如何删除从Python字典多余的键[关闭]

问题描述 投票:-1回答:1

我想从我的输出中删除多余的关键,但不知道如何删除。

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

预期主要('DiskStatus': [

test.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%')])]})])
python dictionary
1个回答
2
投票

假设你想('DiskStatus', [...])而不是('DiskStatus': [...])(逗号与结肠,后者是在Python无效的语法),你可以只取数值超出原词典:

new_dict["DiskStatus"] = disk_status["DiskStatus"]
© www.soinside.com 2019 - 2024. All rights reserved.