在python中提取方括号和花括号内字符串部分的最佳方法

2024-10-01 07:44:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件,其中的行有如下字符串:

{“产品规格”=>;[{“键”=>;“宠物类型”,“值”=>;“狗”}]}

我需要提取{“key”=>;“Pet Type”,“value”=>;“Dog”}。你知道吗

如果字符串中有花括号、方括号和圆括号,那么最好的提取方法是什么? 当我尝试执行以下操作时:

row = re.search(r'{"product_specification"=>[([^]}]+)', row).group(1)

我得到一个错误:

unbalanced parenthesis at position 34

如果我这样做了

str.replace('{"product_specification"=>[', '')

我得到:

replace() takes at least 2 arguments (1 given)

从计算时间的角度来看,什么是正确的方法,什么是更好的方法?你知道吗


Tags: 文件方法key字符串gt宠物类型type
1条回答
网友
1楼 · 发布于 2024-10-01 07:44:32

您应该发布更多示例,但对于您发布的行,此正则表达式可以工作:

>>> a = '{"product_specification"=>[{"key"=>"Pet Type", "value"=>"Dog"}]}'
>>> import re
>>> re.findall("{[^{}]*?}", a)
['{"key"=>"Pet Type", "value"=>"Dog"}']

如果需要可以直接使用的第一个元素(例如,在返回该元素的函数中):

try:
    return re.findall("{[^{}]*?}", a)[0]
except IndexError:
    return None

相关问题 更多 >