Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将输出存储到列表或字典_Python - Fatal编程技术网

Python 将输出存储到列表或字典

Python 将输出存储到列表或字典,python,Python,我使用下面的代码作为一个更大程序的一部分,该程序对数字电影包执行一些错误检查,并尝试检查列出DCP上asses的XML文件的有效性。无论如何,这一切都还处于初级阶段,我希望通过它能学到更多python import xml.etree.ElementTree as etree import sys class Parser(object): def __init__(self, file_name): self.file_name = file_name de

我使用下面的代码作为一个更大程序的一部分,该程序对数字电影包执行一些错误检查,并尝试检查列出DCP上asses的XML文件的有效性。无论如何,这一切都还处于初级阶段,我希望通过它能学到更多python

import xml.etree.ElementTree as etree
import sys

class Parser(object):
    def __init__(self, file_name):
        self.file_name = file_name

    def display(self, rename_this_list):
        tree = etree.parse(self.file_name)
        for node in tree.getiterator():
            for element in rename_this_list:
                if element in node.tag:
                    uuid=(node.text)
                    #uuid = [s.strip('urn:') for s in uuid]
                    print(uuid)

fname = sys.argv[1]
key_search_words = ['KeyId']
instance = Parser(fname)
instance.display(key_search_words)
当我试图存储输出,使每一行都是一个列表时,它的格式与我预期的不同。减去urn:我想用uuid:和以下信息存储每一行,作为列表的一个元素

urn:uuid:9851b0f6-4790-0d4c-a69d-ea8abdedd03d
urn:uuid:8317e8f3-1597-494d-9ed8-08a751ff8615
urn:uuid:5d9b228d-7120-344c-aefc-840cdd32bbfc
urn:uuid:1e32ccb2-ab0b-9d43-b879-1c12840c178b
urn:uuid:44d04416-676a-2e4f-8995-165de8cab78d
urn:uuid:906da0c1-b0cb-4541-b8a9-86476583cdc4
urn:uuid:0fe2d73a-ebe3-9844-b3de-4517c63c4b90
urn:uuid:862fa79a-18c7-9245-a172-486541bef0c0
urn:uuid:aa2f1a88-7a55-894d-bc19-42afca589766
urn:uuid:59d6eeff-cd56-6245-9f13-951554466626
urn:uuid:14a13b1a-76ba-764c-97d0-9900f58af53e
urn:uuid:ccdbe0ae-1c3f-224c-b450-947f43bbd640
urn:uuid:dcd37f10-b042-8e44-bef0-89bda2174842
urn:uuid:9dd7103e-7e5a-a840-a15f-f7d7fe699203
这能满足你的需要吗?我不知道你数据的细节,所以如果有什么错误请告诉我。我认为结果应该是这样的:

{'uuid':['9851b0f6-4790-0d4c-a69d-ea8abdedd03d','ccdbe0ae-1c3f-224c-b450-947f43bbd640',...]}

如果你需要一个列表,那么你可以试试这个

    def display(self, rename_this_list):
        listOfNodes = []
        tree = etree.parse(self.file_name)
        for node in tree.getiterator():
            for element in rename_this_list:
                if element in node.tag:
                   # append text of element to the list 
                   # without first four characters which are "urn:"
                   listOfNodes.append(node.text[4:])
        print str(listOfNodes)
        return listOfNodes

请记住,字典的键必须是唯一的,在字典中不能有两个键为“uuid”的项,如果您想要一个字典,那么您只能有一个键为“uuid”的字典以及所有这些数字作为值的列表

“它的格式不是我所期望的”?那么,它是如何格式化的呢?您将如何对KeyId的每个匹配项或关键字搜索词中的另一个值进行迭代,并将每个匹配项存储在一个列表中?我希望每一场比赛都能在名单中填入另一个元素。我已经能够得到一整行,因为我显示填充列表。让我给这个一个镜头。你能详细说明一下当我实例化这个对象时会是什么样子吗?如果我的搜索词更广泛,等等呢?我不认为会发生任何事情,除非你的实例会得到一个属性
res
@用户1124541
    def display(self, rename_this_list):
        listOfNodes = []
        tree = etree.parse(self.file_name)
        for node in tree.getiterator():
            for element in rename_this_list:
                if element in node.tag:
                   # append text of element to the list 
                   # without first four characters which are "urn:"
                   listOfNodes.append(node.text[4:])
        print str(listOfNodes)
        return listOfNodes