2016-11-29 5 views
0

Я получаю данные XML в ниже форматеПреобразование через запятую значения в словарь Python

<?xml version="1.0"?> 
<localPluginManager> 
    <plugin> 
     <longName>Plugin Usage - Plugin</longName> 
     <pinned>false</pinned> 
     <shortName>plugin-usage-plugin</shortName> 
     <version>0.3</version> 
    </plugin> 
    <plugin> 
     <longName>Matrix Project Plugin</longName> 
     <pinned>false</pinned> 
     <shortName>matrix-project</shortName> 
     <version>4.5</version> 
    </plugin> 
</localPluginManager> 

Используется ниже программы для извлечения "longName" и "version" из XML

Который дает мне ниже вывода, который я хочу преобразовать в формат словаря для дальнейшего дальнейшего развития

('Plugin Usage - Plugin', '0.3') 
('Matrix Project Plugin', '4.5') 

Ожидаемый результат -

dictionary = {"Plugin Usage - Plugin": "0.3", "Matrix Project Plugin": "4.5"} 
+0

Можете ли вы уточнить, что вы хотите получить? –

+0

@nick_gabpe - Мне нужно преобразовать свой вывод в словарь Python –

+0

Итак, ваш основной вопрос - как получить словарь на python и как добавить к нему значения? – jotasi

ответ

0
import xml.etree.ElementTree as ET 
    import requests 
    import sys 
    response = requests.get(<url1>,stream=True) 
    response.raw.decode_content = True 
    tree = ET.parse(response.raw) 
    root = tree.getroot() 
    mydict = {} 
    for plugin in root.findall('plugin'): 
     longName = plugin.find('longName').text 
     shortName = plugin.find('shortName').text 
     version = plugin.find('version').text 
     master01 = longName, version 
     print (master01,version) 
     mydict[longName]=version 
0

Я думаю, вы должны создать словарь в начале:

my_dict = {} 

затем присваивает значения этого словаря в цикле:

my_dict[longName] = version 
0

Предполагая, что у вас есть все ваши кортежи хранятся в списке, вы можете перебирать его следующим образом:

tuple_list = [('Plugin Usage - Plugin', '0.3'), ('Matrix Project Plugin', '4.5')] 
dictionary = {} 

for item in tuple_list: 
    dictionary[item[0]] = item[1] 

Или, в Python 3, вместо этого понимается dict.

0

Это очень просто, на самом деле. Во-первых, инициализации словаря перед циклом, затем добавить пары ключ-значение, как вы получаете их:

dictionary = {} 
for plugin in root.findall('plugin'): 
    ... 
    dictionary[longName] = version # In place of the print call