Я пытаюсь создать объект JSON, который в основном представляет собой словарь. Это мой код, который создал словарь:
# Adding the data to the JSONData object
JSONData[str(gerechtNaam)] = {
"afbeeldingURL": gerechtAfbeelding,
"receptURL": recept,
"prijs": totalePrijs,
"porties": porties,
"moeilijkheid" :moeilijkheid,
"caloriePortie": calorien,
"voorbereidingsTijd": voorbereidingsTijd,
"wachtTijd": wachtTijd,
"totaleTijd": totaleTijd,
"ingredienten": naamEnKwantiteitIngredienten
}
Это работает и генерирует следующее:
{
'Gerooktekipsalade met avocado en walnoten': {
'afbeeldingURL': 'https://static-images.jumbo.com/product_images/Recipe_502535-01_560x560.jpg',
'receptURL': 'http://www.jumbo.com/gerooktekipsalade-met-avocado-en-walnoten/502535/',
'prijs': 16.868000000000002,
'porties': '4 porties',
'moeilijkheid': 'Eenvoudig',
'caloriePortie': '842 kcal per persoon',
'voorbereidingsTijd': '15 min',
'wachtTijd': '0',
'totaleTijd': '15 min',
'ingredienten': [
'2 kroppen minisla romaine ',
'200 g cherrytomaatjes',
'4 stengels bleekselderij',
'2 friszoete handappels ',
'380 g Nieuwe Standaard Kip gerookte kipfilet ',
'2 bosuitjes',
'2 avocado',
'150 ml whisky-cocktailsaus',
'3 el bieslook',
'60 g walnoten',
'1 stokbrood',
'1 snufje peper'
]
}
}
Который я затем конвертирую, используя следующий код:
with open('receptData.json', 'w') as outfile:
json.dump(JSONData, outfile)
Это работает, и генерируется рабочий JSON. Единственная проблема состоит в том, что при попытке выполнить код дважды в цикле for последний переменный, называемый 'Ingienienten', представляющий собой список, который создается в цикле, заменяется для всех объектов в словаре. Таким образом, при создании второго массива ингридиентов массив, который уже был создан и добавлен в JSONData, заменен новым. Все остальные переменные остаются правильными, но список / массив заменяется при каждом запуске цикла.
Итак, когда код запускается второй раз, я получаю следующий словарь:
{
'Gerooktekipsalade met avocado en walnoten': {
'afbeeldingURL': 'https://static-images.jumbo.com/product_images/Recipe_502535-01_560x560.jpg',
'receptURL': 'http://www.jumbo.com/gerooktekipsalade-met-avocado-en-walnoten/502535/',
'prijs': 16.868000000000002,
'porties': '4 porties',
'moeilijkheid': 'Eenvoudig',
'caloriePortie': '842 kcal per persoon',
'voorbereidingsTijd': '15 min',
'wachtTijd': '0',
'totaleTijd': '15 min',
'ingredienten': **[
'4 avocado',
'100 g gerookte zalm',
'8 kleine eieren ',
'25 g alfalfa',
'1 snufje peper',
'1 bakplaat'
]**
},
'Gevulde avocado met ei en zalm uit de oven': {
'afbeeldingURL': 'https://static-images.jumbo.com/product_images/Recipe_502536-01_560x560.jpg',
'receptURL': 'http://www.jumbo.com/gevulde-avocado-met-ei-en-zalm-uit-de-oven/502536/',
'prijs': 8.72,
'porties': '4 porties',
'moeilijkheid': 'Eenvoudig',
'caloriePortie': '234 kcal per persoon',
'voorbereidingsTijd': '10 min',
'wachtTijd': '15 min',
'totaleTijd': '25 min',
'ingredienten': **[
'4 avocado',
'100 g gerookte zalm',
'8 kleine eieren ',
'25 g alfalfa',
'1 snufje peper',
'1 bakplaat'
]**
}
}
В котором первый список «ингредиентов» теперь совпадает со вторым, что не должно быть так. Я пробовал несколько вещей, но ни одна не работала ....