#python
#python
Вопрос:
Я хочу извлечь поле «name» из большого текстового файла json и иметь возможность сохранить их в другом файле на потом, но я получаю все данные, которые были в моем предыдущем файле json, хотя и слегка измененные. Как мне сделать так, чтобы я получал данные только после поля «name»: в моем файле json?
Я пробовал
names = []
with open('./out.json', 'r') as f:
data = json.load(f)
for name in data:
names.append(data[name])
with open('./names.json','w') as f:
for name in names:
f.write('%srn' % name)
и я получаю обратно свой точный файл json, без форматирования и u’ перед всем, вероятно, из json.load(f), но я понятия не имею, как это исправить.
мой текстовый файл отформатирован следующим образом, если это имеет значение:
{
"array":[
{
"name": "Seranul",
"id": 5,
"type": "Paladin",
"itemLevel": 414,
"icon": "Paladin-Holy",
"total": 11107150,
"activeTime": 2205387,
"activeTimeReduced": 2205387
},
{
"name": "Contherious",
"id": 9,
"type": "Hunter",
"itemLevel": 412,
"icon": "Hunter-Marksmanship",
"total": 51102811,
"activeTime": 2637303,
"activeTimeReduced": 2637303
},
{
"name": "Unicorns",
"id": 17,
"type": "Priest",
"itemLevel": null,
"icon": "Priest",
"total": 12252005,
"activeTime": 1768883,
"activeTimeReduced": 1761797
},
...
}
]}
Я ожидаю увидеть соответствующие данные для каждого поля имени, но я получаю весь свой документ обратно.
Ответ №1:
Похоже, что ваш код игнорирует структуру данных JSON. В частности, вы перебираете ключи в словаре JSON, что просто array
, а затем добавляете значение в names
свой список. Это приводит к тому, что все array
свойство помещается в вашу names
переменную.
Вот что, я полагаю, вы хотите: выполните итерацию по записям в array
and и их списку, затем экспортируйте это как JSON в другой файл.
import json
names = []
with open('./out.json', 'r') as f:
data = json.load(f)
for entry in data["array"]:
names.append(entry["name"])
with open('./names.json', 'w') as f:
f.write(json.dumps(names))
Это приведет к следующему JSON в names.json
:
["Seranul", "Contherious", "Unicorns"]