2016-07-24 12 views
-1

Я преобразовательные строку в формат JSON, как показано нижеПреобразование строки в JSON данных

data = """ 

S3F4 
accept reply: true 

""" 

И данные JSon является [{"header":{"stream":3,"function":4,"reply":True}}]

можно использовать регулярные выражения и поиск шаблона S3F4 и добавить в Сыроватском.

Но есть ли лучший способ или функции построения, которые я могу использовать для более общего решения?

+0

Какой вопрос? Есть ли лучший способ (лучше, чем _what_?) «Разбирать» строку, такую ​​как «» принятый ответ SNFN: true/false »? –

+0

Есть ли обычный способ или использовать библиотеки типа 'json.loads', или это единственный способ. – user2661518

+0

Как должна существовать существующая библиотека для анализа вашего пользовательского формата данных? (Если это не ваш пользовательский формат, но какой-то стандарт, пожалуйста, укажите формат.) –

ответ

1

Не уверен, что обо всех изменениях входной строки и тем, что является областью символов stream, function и reply может иметь, но вот то, что вы можете начать с:

S(?P<stream>\d)F(?P<function>\d)\naccept reply: (?P<reply>\w+) 

где (?P<...>...) являются named capturing groups, \d будет соответствовать одной цифре, \w+ будет соответствовать одному или нескольким буквенно-цифровым символам (и подчеркиваниям).

Демо:

>>> import re 
>>> 
>>> data = """ 
... S3F4 
... accept reply: true 
... """ 
>>> 
>>> match = re.search(r"S(?P<stream>\d)F(?P<function>\d)\naccept reply: (?P<reply>\w+)", data) 
>>> print(match.groupdict()) 
{'function': '4', 'reply': 'true', 'stream': '3'} 
Смежные вопросы