【发布时间】:2021-08-24 16:50:02
【问题描述】:
我想用一个 { 替换下面突出显示的字符串。欢迎分享你的想法
'{' 和 '}]' 之间的字符串必须替换为 {
我已经存储到下面的 json 到 str 来执行替换
{'preview': False, 'init_offset': 0, 'messages': [], 'fields': [{'name': 'dxx.jxx.lxx.sxx'}, {'name': 'dxxx.jxxx.operationName'}, {'name': 'dxxx.jxxx.txxx'}, {'name': 'dxxx.jxxx.log.payload.status'}], 'results': [{'dxxx.jxxx.log.startTime': '2021-06-07T05:44:46.817Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '87', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-06T22:29:28.966Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '56772655863572929', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-05T20:21:30.062Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '43', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-04T03:05:24.848Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '54', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-04T03:05:23.610Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '53', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-03T07:33:00.594Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '23', 'dxxx.jxxx.log.payload.status': '200'}], 'highlighted': {}}
预期输出:
{'results': [{'dxxx.jxxx.log.startTime': '2021-06-07T05:44:46.817Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '87', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-06T22:29:28.966Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '56772655863572929', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-05T20:21:30.062Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '43', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-04T03:05:24.848Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '54', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-04T03:05:23.610Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '53', 'dxxx.jxxx.log.payload.status': '200'}, {'dxxx.jxxx.log.startTime': '2021-06-03T07:33:00.594Z', 'dxxx.jxxx.operationName': 'testops', 'dxxx.jxxx.txxx': '23', 'dxxx.jxxx.log.payload.status': '200'}], 'highlighted': {}}
我试过了:
s = re.sub('^*}], ', '{', s)
print(s)
【问题讨论】:
-
您能添加任何示例代码吗?
-
@RubénPozo,下面是我试过的代码。谢谢 ! s = re.sub('^*}], ', '{', s) 打印 s
-
出于好奇,您希望
{'results': }做什么? -
re.sub('^.*}], ', '{', s)请注意正则表达式中^后面的.。^匹配字符串开始。^*是 invalid regex,因为在同一个字符串中不能有多个字符串开头。.给了*一些可以量化的东西,so it works -
您希望得到什么确切的输出?由于
{ 'results': }既不是有效的 json 也不是有效的 ast,我想知道你打算用它做什么。如果您只是省略了一堆实际结果,那么可能有一些简单的方法可以使用ast或json来为您提供所需的结果。
标签: python python-3.x string replace