我在文件中有很多如下所示的行:
{"first_name":"John","last_name":"Smith","age":30}
{"first_name":"Tim","last_name":"Johnson","age":34}
我首先尝试使用 json 模块将其作为字典导入,这样我就可以打印键的值。问题是某些行缺少正确的大括号或有其他问题,并且每行的字段顺序不同。那是阻止进口。
所以现在我正在尝试使用正则表达式来做到这一点。我有这个:
fo = open("c:\\newgoodtestsample.txt", "r")
x = fo.read()
match1 = re.search('first_name"(.*?)"(.*?)"', x)
if match1:
print match1.group(2)
这仅返回名称的值。我也希望能够返回其他字段。这在正则表达式测试器中工作,但我无法让它在我的代码中工作:
(first_name|last_name|age)"(.*?)"(.*?)"
最后,一旦确定了这一点,我需要读取文件中的每一行(不仅仅是第一行)并将请求的正则表达式数据从每一行打印到一个文件中。我尝试插入一个 for 循环,但我不断重复第一行,所以我必须错误地插入它。任何帮助表示赞赏。