Python正则表达式查找{}

2024-05-14 00:36:01 发布

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

我正在浏览一个json文件,并使用regex提取有关公司财务kpi及其相应值的信息。例如,
"grossProfits":{"raw":19805000000,"fmt":"19.8B","longFmt":"19,805,000,000"}

将返回19.8B。问题是KPI没有任何信息时。例如 "returnOnEquity":{}。你知道吗

在这种情况下,returnOnEquity将返回regex找到的下一个数字。
"returnOnEquity":{},"grossProfits":{"raw":19805000000,"fmt":"19.8B","longFmt":"19,805,000,000"}。你知道吗

因此,returnOnEquity的回报值将是grossProfits(198亿)的回报值。你知道吗

这是我当前的正则表达式r'.*?"(\d{1,8}\.\d{1,8}M?B?K?|[{}])%?'

在一个完美的世界中,我希望它返回0,但即使是'{'或'}'也足够了。你知道吗

非常感谢您的帮助。你知道吗


Tags: 文件信息jsonraw世界情况数字regex
1条回答
网友
1楼 · 发布于 2024-05-14 00:36:01

正如前面的评论员所建议的那样,json模块是一种可行的方法(参见Docs

就你而言

import json

with open('sample.txt') as js:
    data = json.load(js)

for firm in data:
    print(firm)
    print(data[firm]['grossProfits']['raw'])
    print(data[firm]['returnOnEquity'])

它将您的数据转换为字典字典,因此您不必担心解析。你知道吗

相关问题 更多 >