我们有大量文件需要转换为 json 这是一个文件的示例数据
{
1=2,
4=tt,
6=9
}
{
1=gg,
2=bd,
6=bb
}
我正在使用 python 来转换数据,其中正则表达式工作正常,但当我在 python 代码中实现时,相同的正则表达式不起作用 这是代码
import numpy as np
f = open('/Users/rahulvarma/Downloads/2020120911.txt', 'r')
content = f.read()
import re
regex = r"([0-9]+)(=)((.*)+)"
subst = "\"$1\":\"$3\","
result = re.sub(regex, subst, content, 0, re.MULTILINE)
if result:
print (result)
但是我的是
{
"$1":"$3",
"$1":"$3",
"$1":"$3"
}
{
"$1":"$3",
"$1":"$3",
"$1":"$3"
}
我的预期输出应该是
{
"1":"2",
"4":"tt",
"6":"9"
}
{
"1":"gg",
"2":"bd",
"6":"bb"
}
最佳答案
您可以使用此正则表达式进行搜索:
(\d+)=([^,\n]*)(,|$)
并替换为:
"\1":"\2"\3
代码:
regex = r"(\d+)=([^,\n]*)(,|$)"
result = re.sub(regex, r'"\1":"\2"\3', input_str, 0, re.MULTILINE)
正则表达式详细信息:
(\d+)
:匹配捕获组 #1 中的 1 个以上数字=
:匹配=
字符([^,\n]*)
:匹配 0 个或多个非、
和\n
的任意字符捕获组#2(,|$)
:匹配捕获组 #3 中的逗号或行尾
关于python - 正则表达式替换无法在Python中用正则表达式变量替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65318081/