我有一个目录,它经常转储一组文本文件,如下所示:
每个文件都包含一个JSON“数组”,如下所示:
[
{
"id" : "blah",
"type" : "thingy",
"ip" : "10.0.0.1",
"extended" : {
"var1" : "blah"
}
},
{
"id" : "blah2",
"type" : "thingy",
"ip" : "10.0.0.2",
"extended" : {
"var1" : "blah"
}
}
]
我想知道什么是读取这些文件并将每个单独的JSON字符串存储到一个数组中以便进一步处理的最有效的方法。我看过json.load(),但这似乎是在单个JSON字符串中读取的,而不是字符串的“数组”。你知道吗
一个可能的解决方案可能是剥离结束括号并通过regex拆分每个JSON对象?你知道吗
编辑:添加一些示例代码:
json_array = []
for filename in sorted(os.listdir(CONFIG.DATA_DIR)):
m = re.match('^.*\.JSON$', filename)
if m:
data = json.load(open(CONFIG.DATA_DIR+filename))
for item in data:
json_array.append(item)
return json_array
您非法格式化了JSON。你不能有任何多余的逗号,所以我用下面的表达式删除了它们。你知道吗
示例
如果JSON格式正确,您可以直接从文件加载数据。你知道吗
代码高尔夫
实现了一个利用列表理解的单行程序,并通过平展数组来减少数组。你知道吗
相关问题 更多 >
编程相关推荐