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 用正则表达式解析数据变成字典。的主要内容,如果未能解决你的问题,请参考以下文章

如何确保我的 Python 正则表达式输出字典?

给初学者的 Python 建议。正则表达式,字典等?

python解析网站BeautifulSoup

python解析网站BeautifulSoup

python 之 Django框架(路由系统include命名URL和URL反向解析命名空间模式)

python解析网站BeautifulSoup