You need to create a csv file with Header.
When adding a new product, if it has a header in the dictionary, which is not in csv, then you need to add this header to csv, and all products that were left before adding leave this place empty.
How can this be implemented? Perhaps you can first store it in a temporary structure, and only in the last step, save it to csv.
Before that, I only created csv with a fixed number of columns, but never worked with dynamic ones.
Example:
{'NAME': 'AquaDoctor C-60 50 ΠΊΠ³. Π² Π³ΡΠ°Π½ΡΠ»Π°Ρ
', 'PRICE': '17\xa0919,00', 'STOCK_STATUS': False, 'SKU': '1551', 'CATEGORY_ID': 28, 'IMAGE': 'https://aquapolis.ru/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/c/6/c60_5_1.jpg', 'IMAGES': [], 'MANUFACTURER': 'AquaDoctor', 'COUNTRY_OF_ORIGIN': 'ΠΠΈΡΠ°ΠΉ', 'DESCRIPTION': 'Π£Π΄Π°ΡΠ½ΡΠΉ, Π±ΡΡΡΡΠΎΡΠ°ΡΡΠ²ΠΎΡΠΈΠΌΡΠΉ ΠΏΡΠ΅ΠΏΠ°ΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ 60% Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ
Π»ΠΎΡΠ°. ΠΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π³ΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ (ΡΠΎΠΊΠΎΠ²ΠΎΠΉ) ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΎΠ΄Ρ Π² Π±Π°ΡΡΠ΅ΠΉΠ½Π΅. Π£Π½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ Π²ΠΈΡΡΡΡ, Π±Π°ΠΊΡΠ΅ΡΠΈΠΈ, Π³ΡΠΈΠ±ΠΎΠΊ, ΠΏΠ»Π΅ΡΠ΅Π½Ρ.', 'DESCRIPTION_FEATURE': ''}, {'CATEGORY_ID': 11, 'IMAGE': 'https://aquapolis.ru/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/g/2/g2_heat_exchanger_1_2.jpg', 'IMAGES': ['https://aquapolis.ru/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/g/2/g2_combine-2.jpg', 'https://aquapolis.ru/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/g/2/g2_heat_exchange_5_2.jpg', 'https://aquapolis.ru/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/g/2/g2.jpg', 'https://aquapolis.ru/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/e/l/elec_g2.jpg', 'https://aquapolis.ru/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/h/e/heat-exchanger-horizontal_s-2.png', 'https://aquapolis.ru/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/f/i/file_42_2.jpg'], 'ΠΠΎΡΠ½ΠΎΡΡΡ': '30 ΠΊΠΡ', 'ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ': '<ul class="bullet"><li>ΠΠΎΡΠΏΡΡ ΠΈΠ· Π½Π΅ΡΠΆΠ°Π²Π΅ΡΡΠ΅ΠΉ ΡΡΠ°Π»ΠΈ BS 316L (EN 1.4432)</li><li>Π’ΡΡΠ±ΠΊΠΈ ΠΈΠ· ΡΠΈΡΠ°Π½Π°</li><li>ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ 4 ΠΠ°Ρ</li><li>Π’Π΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΠ° ΡΠ΅ΠΏΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊΠ° G2: 90 β</li><li>ΠΠΎΠ»ΠΈΠ°ΠΌΠΈΠ΄Π½Π°Ρ ΡΠ΅ΡΠ΅ΡΠΊΠ°</li><li>ΠΠ°ΠΌΠ΅ΡΠ° Ρ ΡΠ΅ΠΏΠ»ΠΎΠΈΠ·ΠΎΠ»ΡΡΠΈΠ΅ΠΉ</li><li>Π€ΠΈΡΠΈΠ½Π³ΠΈ ΠΈΠ· Π»Π°ΡΡΠ½ΠΈ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π²Π°</li><li>ΠΡΡΠΎΠΊΠ°Ρ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΡΠ΅ΠΏΠ»ΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ</li><li>ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ
ΠΈ ΡΠΈΡΡΠΎΠ²ΡΡ
ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ</li></ul>', 'ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°ΡΠΈΡ': '<ul class="bullet"><li>Π’Π΅ΠΏΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊ Elecro G2 HE 30T</li><li>ΠΠ°ΡΡΠ½Π½ΡΠ΅ ΡΠΈΡΠΈΠ½Π³ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΠ°</li><li>Π’ΠΈΡΠ°Π½ΠΎΠ²ΡΠΉ ΠΊΠ°ΡΠΌΠ°Π½ Π΄Π»Ρ ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠ°</li><li>ΠΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΊΠ»Π°ΠΏΠ°Π½</li><li>Π€ΠΈΡΠΈΠ½Π³ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π·Π°Π³Π»ΡΡΠΊΠ°, ΠΏΡΠΎΠΊΠ»Π°Π΄ΠΊΠ°</li><li>ΠΡΠ΅ΠΏΠ΅ΠΆΠ½Π°Ρ ΡΠΊΠΎΠ±Π°</li><li>ΠΠ½ΡΡΡΡΠΊΡΠΈΡ</li></ul>', 'ΠΠ΅Ρ, ΠΊΠ³': '2', 'MANUFACTURER': 'Elecro', 'ΠΠ°ΡΠ°Π½ΡΠΈΡ': '12 ΠΌΠ΅ΡΡΡΠ΅Π²', 'COUNTRY_OF_ORIGIN': 'ΠΠ΅Π»ΠΈΠΊΠΎΠ±ΡΠΈΡΠ°Π½ΠΈΡ', 'DESCRIPTION': 'Π’Π΅ΠΏΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊ Elecro G2 Π΄Π»Ρ ΠΎΠ±ΠΎΠ³ΡΠ΅Π²Π° Π±Π°ΡΡΠ΅ΠΉΠ½ΠΎΠ². ΠΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠ· Π½Π΅ΡΠΆΠ°Π²Π΅ΡΡΠ΅ΠΉ ΡΡΠ°Π»ΠΈ, ΡΠΈΡΠ°Π½Π°, ΠΏΠΎΠ»ΠΈΠΌΠ΅ΡΠ° ΠΈ Π»Π°ΡΡΠ½ΠΈ. ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΏΡΠ΅Π²Π·ΠΎΠΉΠ΄Π΅Π½Π½ΠΎ Π±ΠΎΠ»ΡΡΡΡ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΡΠ΅ΠΏΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΏΠ»ΠΎΠΏΠΎΡΠ΅ΡΡΠΌΠΈ. ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π³Π°Π·ΠΎΠ²ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠΎΠΏΠ»ΠΈΠ²Π½ΡΠΌΠΈ Π±ΠΎΠΉΠ»Π΅ΡΠ°ΠΌΠΈ, ΡΠΎΠ»Π½Π΅ΡΠ½ΡΠΌΠΈ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΠΏΠ»ΠΎΠ²ΡΠΌΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ°ΠΌΠΈ.', 'DESCRIPTION_FEATURE': '<li>ΠΠΎΡΠ½ΠΎΡΡΡ: 30 ΠΊΠΡ</li><li>Π’ΡΡΠ±ΠΊΠΈ: ΡΠΈΡΠ°Π½</li><li>ΠΠΎΡΠΏΡΡ: Π½Π΅ΡΠΆ. ΡΡΠ°Π»Ρ 316</li><li>ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡ: 1"</li><li>ΠΡΠΎΡΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡ: 1.5"</li>', 'NAME': 'Π’Π΅ΠΏΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊ Elecro G2 HE 30 ΠΊΠΡ (titanium)', 'PRICE': '23\xa0381,00', 'SKU': '6973'} As you can see, they have a different number of fields.
Example csv, how it should look like:
CATEGORY_ID;NAME; PRICE; SKU; DESCRIPTION; MANUFACTURER; 'ΠΠΎΡΠ½ΠΎΡΡΡ'; ..; 100;AquaDoctor C-60;1709,19;1551;Π£Π΄Π°ΡΠ½ΡΠΉ, Π±ΡΡΡΡΠΎ..;'AquaDoctor';'30 ΠΊΠΡ' .. 2;Π’Π΅ΠΏΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊ El;23081,00;6973;Π’Π΅ΠΏΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊ ..;'Elecro'; ; ; The first line is the title of the headings, if a property appears which is not in the heading, it is added there.
Missing properties of products must leave empty space.
IMAGEScolumn look like? It seems that you are not interested in receiving a response. I advise you to read: How to most effectively ask a question about Pandas / Numpy / SciPy / SciKit Learn / SQL / etc.? - MaxU pm