2016-08-30 3 views
0

Я проанализировал строку и преобразовал ее в словарь. однако я хотел бы получить больше информации из моего словаря, и я думал, что создание файла сына или файла yaml было бы более полезным. , пожалуйста, не стесняйтесь прокомментировать другой способ решения этой проблемы.Словарь Python, преобразовывающий в json или yaml

import re 
regex = '(\w+) \[(.*?)\] "(.*?)" (\d+) "(.*?)" "(.*?)"' 
sample2= 'this [condo] "number is" 28 "owned by" "james"' 
patern = '(?P<host>\S+)\s(?P<tipe>\[\w+\])\s(?P<txt>"(.*?))\s(?P<number>\d+)\s(?P<txt1>"\w+\s\w+")\s(?P<owner>"\w+)' 
m =re.match(patern, sample2) 
res = m.groupdict() 
print res 

и я хотел бы получить:

{'tipe': '[condo]', 'number': '28', 'host': 'this', 'owner': '"james', 'txt': '"number is"', 'txt1': '"owned by"'} 

Я хотел бы иметь возможность сортировать по имени владельца и выписывать тип дома и номер дома. например:

Джеймс: {типа: квартиры, Количество: 28}

или любые другие предложения?

ответ

0

Вопрос о json vs yaml сводится к тому, что вы делаете с данными, которые вы сохраняете? Если вы повторно используете данные в JS или в другом скрипте python, вы можете использовать JSON. Если вы использовали его в том, что использует YAML, то используйте YAML. Но с точки зрения вашего вопроса, если для ваших данных не существует конкретной конечной игры или прецедента, это не имеет значения для формата, вы даже можете сделать типичный TSV/CSV, и это будет одинаково.

Чтобы ответить на ваш вопрос о том, как ввести dict в json.

Из вашего примера, как только вы создали словарь res.

import json 
with open('someFile.json', 'wb') as outfile: 
    json.dump(res, outfile) 

Выходной файл someFile.json будет ваш словарь res

+0

Я имею в виду, позже я бы больше имен и номеров, таким образом, я могу, например, сказать: Джеймсу: {Тип: квартира, номер: 28} david: {тип: особняк, число: 10} таким образом, я могу перечислить. конечная цель - проанализировать файл журнала Apache и на основе IP-адресов проверить статус отправленного запроса. –

+0

еще раз, пока не будет usecase, неважно, в каком формате он находится, потому что формат - это просто способ передачи данных. Если бы вы сказали, используя эти данные в db, как mongo, тогда JSON был бы идеальным, но поскольку вы не делаете DB-вещи прямо сейчас, бессмысленно спрашивать, какой формат лучше. –

+0

как я могу преобразовать это в json в формате выше. Это был бы главный вопрос. –

Смежные вопросы