我有JSON文件格式如下: (为清晰起见,多行)
(第0001行).......
{
"_id": "iD_0001",
"skills": [{
"name": "Project Management"
}, {
"name": "Business Development"
}]
}
.... (第9999行)
{
"_id":"iD_9999",
"skills": [{
"name": "Negotiation"
}, {
"name": "Banking"
}]
}
我想在其上运行一个程序,但程序无法以上述格式读取它。 因此,我想将其格式修改为:
[{
"_id": "iD_0001",
"skills": [{
"name": "Project Management"
}, {
"name": "Business Development"
}]
},{
"_id":"iD_9999",
"skills": [{
"name": "Negotiation"
}, {
"name": "Banking"
}]
}]
基本上,将所有条目放在一个数组中。 有没有办法使用Python或demjson实现它?
替代方法:我创建了一个程序来获取这些json文件中的技能并将它们发送到文本文件(Test.txt),但它只适用于第二种格式,而不是第一种格式。您能否建议进行修改以使其适用于第一种格式(上图)? 这是我的计划:
import json
from pprint import pprint
with open('Sample.json') as data_file:
data = json.load(data_file)
with open('Test.txt', 'w') as f:
for x in data:
for y in x["skills"]:
f.write(y["name"])
f.close()
解
感谢Antti Haapala在第一种格式下注意到Json对象的连接,以及Walter Witzel和Josh J建议替代答案。 由于第一种格式是单个对象的连接,如果我们加载第一个Json文件逐行而不是作为一个整体,程序运行良好。我这样做了:
data = []
with open('Sample1-candidats.json') as data_file:
for line in data_file:
data.append(json.loads(line))
with open('Test.txt', 'w') as f:
for x in data:
for y in x["skills"]:
f.write(y["name"])
f.close()
答案 0 :(得分:0)
在这里。这假设您的文件只是一堆连接的单个json对象,您需要在json对象列表中进行转换。
default:
autoload: %paths.base%/app/features/bootstrap
suites:
default:
paths:
- %paths.base%/app/features
答案 1 :(得分:0)
以下是您可以采取的步骤来完成您的问题。因为它听起来像家庭作业,我会给你逻辑和指针,但不是代码。
list
.....
json.loads
每个结果列表