Home > Enterprise >  Sort and count words in xml output python script
Sort and count words in xml output python script

Time:10-28

I'm trying to sort and count every word from the output of the i.find().text command, but I can't find a way to do it without hardcoded filter words in the array.

Used strings:

from xml.etree import ElementTree as ET 

root = ET.fromstring(response.text)

data = root.findall('file.xml')

for i in data:
   print(i.find('file.xml/ssidname').text)

The output of string:

SSID1
SSID1
SSID1
SSID2
SSID3
SSID1
SSID3
SSID2
SSID2

The excepted answer is:

SSID1: 4, SSID2: 3, SSID3: 2

I'm stuck on python 2.6.6 and can't update it, so the idea of using counters can't be used.

If you have any tips, please let me know in the comments. Thanks in advance.

CodePudding user response:

So, I don't know which parts actually work in Python 2.6 but here is a probable solution:

text = '''SSID1
SSID1
SSID1
SSID2
SSID3
SSID1
SSID3
SSID2
SSID2'''


counter = {}
for line in text.split('\n'):
    counter[line] = counter.get(line, 0)   1

final = dict(sorted(counter.items(), key=lambda x: x[1], reverse=True))
print(final)
  • Related