Python 用正则表达式解析数据变成字典。
Posted
技术标签:
【中文标题】Python 用正则表达式解析数据变成字典。【英文标题】:Python parse data with regular expressions turn into dictionary. 【发布时间】:2016-01-08 07:46:46 【问题描述】:我有一串数据。我想把它变成一个 字典
ff = 'wrapper:one:now:"",up:"north",down:"south"'
请注意,键不是用 ' 或 " 包装的文本。正则表达式可以帮助做到这一点吗?新文本应该如下所示。如果 pandas 可以做到这一点,我可以 使用熊猫。
ff = '"wrapper":"one":"now":"","up":"north","down":"south"'
【问题讨论】:
【参考方案1】:使用环视:
(?<=).*?(?=:)
在哪里
(?<=) - match before
.*? - non greedy
(?=:) - match : after
所以在代码中它会是..
import re
import json
str = 'wrapper:one:now:"",up:"north",down:"south"'
str = re.sub('(?<=[,])(.*?)(?=:)', r'"\1"', str)
jsonobj = json.loads(str)
print jsonobj
【讨论】:
【参考方案2】:(?!")
- 负面展望。
def st_to_dict(st):
import re
return re.sub(r'(\b[^:"]+\b)(?!")',r'"\1"',st)
ff = 'wrapper:one:now:"",up:"north",down:"south"'
print(st_to_dict(ff))
输出:
"wrapper":"one":"now":"","up":"north","down":"south"
【讨论】:
以上是关于Python 用正则表达式解析数据变成字典。的主要内容,如果未能解决你的问题,请参考以下文章