我试着写一个正则表达式来提取粗体数据。这是一个来自tinyG微控制器的json包裹状态报告。使用pythons串行模块我可以请求状态报告并使用readline方法来获取它,但它是json格式。粗体部分恰好采用python字典的格式。最后一位带有" f"之后的数字列表。每个状态报告都会有所不同。
我想知道是否有办法提取粗体部分并将其从字符串转换为字典。我知道有用于编码和解码json字符串的模块,但是我不确定它是否过度用于此目的。任何建议将不胜感激。
string =' {" r":{" sr":{" line":0," posx&# 34;: - 2.500" POSY": - 6.500" posz": - 2.750" POSA":0.000,"进料&#34 ;: 0.00" VEL":0.00,"单元":1," COOR":1," DIST":1," frmo":0," MOMO":0," STAT":3 }," F":[1,0,40, 6206]}}'
答案 0 :(得分:1)
Python的JSON
模块更适合这种情况。
string = '{"r":{"sr":{"line":0,"posx":-2.500,"posy":-6.500,"posz":-2.750,"posa":0.000,"feed":0.00,"vel":0.00,"unit":1,"coor":1,"dist":1,"frmo":0,"momo":0,"stat":3},"f":[1,0,40,6206]}}'
import json
q = json.loads(string)
print q['r']['sr']
结果将是一本字典。
{u'feed': 0.0, u'coor': 1, u'stat': 3, u'dist': 1, u'frmo': 0, u'posa': 0.0, u'posz': -2.75, u'posx': -2.5, u'posy': -6.5, u'momo': 0, u'line': 0, u'vel': 0.0, u'unit': 1}