我正在将字符串转换为json格式,如下所示
data = """
S3F4
accept reply: true
"""
json数据为[{"header":{"stream":3,"function":4,"reply":True}}]
我可以使用正则表达式和搜索模式S3F4
并添加到dict。
但是有没有更好的方法或构建功能我可以用于更通用的解决方案?
答案 0 :(得分:1)
不确定输入字符串的所有变体以及字符stream
,function
和reply
的范围是什么,但您可以从以下内容开始:< / p>
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'}