Преобразование объекта Doc в строку в Python - PullRequest
0 голосов
/ 31 марта 2010

Я использую minidom для разбора XML-документа. Я взял данные с тегами yum, сохранил их в списке и вычислил частоту слов. Тем не менее, это не хранить или читать их как строки в списке. Есть ли другой способ сделать это? Прямо сейчас это то, что у меня есть:

yumNodes = [node for node in doc.getElementsByTagName("yum")]

for node in yumNodes:
    yumlist.append(t.data for t in node.childNodes if t.nodeType == t.TEXT_NODE)

for ob in yumlist:
    for o in ob:
        if word not in freqDict:
            freqDict[word] = 1
        else:
            freqDict[word] += 1

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Не имеет прямого отношения к вашему вопросу, но как замечание, которое может улучшить ваш код ... шаблон

freqDict = {}
...
if word not in freqDict:
    freqDict[word] = 1
else:
    freqDict[word] += 1

обычно заменяется на

import collections
freqDict = collections.defaultdict(int)
...
freqDict[word] += 1

или до 2,5

freqDict = {}
...
freqDict.setdefault(word, 0) += 1
0 голосов
/ 31 марта 2010

Заменить

yumlist.append(t.data for t in node.childNodes if t.nodeType == t.TEXT_NODE)

со следующим:

yumlist.append(t.nodeValue for t in node.childNodes if t.nodeType == 3)
...