【发布时间】:2016-03-15 19:02:16
【问题描述】:
我有一个包含数千个 jsons 字符串的文本文档,格式为:"{...}{...}{...}"。这不是它自己的有效 json,但每个 {...} 都是。
我目前使用以下正则表达式来拆分它们:
fp = open('my_file.txt', 'r')
raw_dataset = (re.sub('}{', '}\n{', fp.read())).split('\n')
这基本上打破了花括号关闭和其他打开的每一行 (}{ -> }\n{),因此我可以将它们分成不同的行。
问题是它们中很少有人有写成"{tagName1}{tagName2}" 的tags 属性,这会破坏我的正则表达式。
一个例子是:
'{"name":\"Bob Dylan\", "tags":"{Artist}{Singer}"}{"name": "Michael Jackson"}'
被解析成
'{"name":"Bob Dylan", "tags":"{Artist}'
'{Singer}"}'
'{"name": "Michael Jackson"}'
而不是
'{"name":"Bob Dylan", "tags":"{Artist}{Singer}"}'
'{"name": "Michael Jackson"}'
为进一步解析 json 实现这一点的正确方法是什么?
【问题讨论】:
-
{ name : "foo" }也不是 json。{ "name" : "foo" }是 json。注意双引号。 -
每个
{}中的数据格式是否相同?我的意思是每个数据都以{name开头吗? -
@hek2mgl 你是对的,我只是修复它们
-
@noob 不一定。
-
@fuxes:你能发布更多数据吗?