将字符串转换为json数据

时间:2016-07-24 15:21:42

标签: python json regex

我正在将字符串转换为json格式,如下所示

data = """

S3F4
accept reply: true

"""

json数据为[{"header":{"stream":3,"function":4,"reply":True}}]

我可以使用正则表达式和搜索模式S3F4并添加到dict。

但是有没有更好的方法或构建功能我可以用于更通用的解决方案?

1 个答案:

答案 0 :(得分:1)

不确定输入字符串的所有变体以及字符streamfunctionreply的范围是什么,但您可以从以下内容开始:< / 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'}