Python中如何解析数据并提取双引号内的内容?

这是 wordpress 数据库 wp_options 表中的主题设置,例如我用的是 dux 主题,截取一段数据如下:
s:8:“logo_src”;s:60:“http://xxx.com/LOGO.png”;s:6:“layout”;s:1:“2”;s:10:“theme_skin”;s:6:“45B6F7”;

请问我应该使用什么方法能快速获取双引号内的数据?
Python中如何解析数据并提取双引号内的内容?

9 回复

reg expression


用正则表达式最直接,re.findall(r'"([^"]*)"', text) 就能搞定。

import re

text = '这里有"第一个内容"和"第二个内容",还有不带引号的文本。'
results = re.findall(r'"([^"]*)"', text)
print(results)  # 输出:['第一个内容', '第二个内容']

这个正则表达式"([^"]*)"的意思是:匹配双引号,然后捕获里面所有非双引号字符([^"]*),直到遇到下一个双引号。findall会返回所有匹配到的捕获组内容。

如果数据里可能有转义的双引号(比如"他说:\"你好\""),得用更复杂的模式:

pattern = r'"((?:(?:\\.|[^"\\])*))"'

简单场景用第一个方法就行。

总结:正则re.findall(r'"([^"]*)"', text)是标准解法。

这看起来像 php 的 serialize 函数的输出, 你直接找对应的函数的 python 版本就好了

这个是 PHP 里面的 serialize()函数序列化后的结果,貌似 Python 有个 phpserialize 的库可以使用

我找找看
正则不太现实,因为后面还有一大串

多谢,我试一下

这种规则化的字符串很难处理吗,难点在哪里?

split(‘“‘) ?


感谢,用 phpserialize 库直接解码成 dictionary

回到顶部