CSV import bug in 2.1.60

Hi! I use Anki 2.1.60 and try to import a large en-ru deck.

For now, I’m only able to import 20865 out of 20885 cards.

Some lines are imported incorrectly. Here are they. The table has a header because I checked it with pandas 1.5.2. Guess what? pandas also failed to parse all rows correctly, though it failed on less rows than Anki.

Python code:

import pandas as pd
df = pd.read_csv("data/decks/not_loaded.csv", sep="|", encoding="utf8")
df

not_loaded.csv:

header_0|header_1|header_2|header_3|header_4|header_5|header_6|header_7|header_8|header_9|header_10|header_11
04884|0372|"From now on," he said, "please call me by my middle name.|"С этого момента, - сказал он, - пожалуйста, называйте меня по среднему имени.|Herman said yes.|Герман сказал "да".|From now on, please call me Adam."|С этого момента, пожалуйста, зовите меня Адам".|72. A New Name|72. Новое имя|12|13
04886|0372|His mother said that was no problem.|Его мать сказала, что это не проблема.|From now on, please call me Adam."|С этого момента, пожалуйста, зовите меня Адам".|"Goodbye, Herman," she said, "and hello, Adam."|"До свидания, Герман, - сказала она, - и здравствуй, Адам".|72. A New Name|72. Новое имя|7|7
06326|0451|"No, honey," her mom said, "Santa will bring you only one doll.|"Нет, милая, - сказала мама, - Санта принесет тебе только одну куклу.|she asked.|спросила она.|So pick the one you like best."|Так что выбирай ту, которая тебе больше нравится".|151. I Want All of Them|151. Я хочу их всех|12|12
06966|0480|"Dad," said Lucy, "that's a great idea.|"Папа, - сказала Люси, - это отличная идея.|You can have a new Pirate for 14 more years."|Ты сможешь иметь нового Пирата еще 14 лет".|Then, when my new Pirate is 14, I can get another new Pirate!"|Потом, когда моему новому Пирату исполнится 14 лет, я смогу завести еще одного нового Пирата!".|180. Copycat Copycat|180. Подражатель подражателя|7|8
06968|0481|"I'm calling the police," Barry said.|"Я звоню в полицию", - сказал Барри.|||"I'm glad you're calling the police," Ruth said.|"Я рада, что ты звонишь в полицию", - сказала Рут.|181. A Loud Party|181. Громкая вечеринка|6|7
07038|0484|"I'm sorry," said the park ranger.|"Извините, - сказал смотритель парка.|Finally they were at the front of the line.|Наконец они оказались в начале очереди.|"We're closed."|"Мы закрыты".|184. Sleep In or Get Up?|184. Спать или вставать?|6|5
10201|0593|"Maybe we're safe," said one boy, "but we're not happy.|"Может быть, мы и в безопасности, - сказал один мальчик, - но мы не счастливы.|"Texas is now a safe state for children," said the governor.|"Техас теперь безопасный штат для детей", - сказал губернатор.|Helmets suck."|Шлемы - отстой".|93. A New Law|93. Новый закон|10|15
10203|0594|"What time does the football game start?"|"Во сколько начинается футбольный матч?".|||John asked.|спросил Джон.|94. She Plays Golf|94. Она играет в гольф|7|5
11097|0632|"Lisa," Mom said, "come here and set the table.|"Лиза, - сказала мама, - иди сюда и накрой на стол.|Lisa was having fun with the dog.|Лизе было весело с собакой.|It's dinner time."|Сейчас время ужина".|132. Dinner Chores|132. Обеденные обязанности|9|11
11099|0632|Lisa said it wasn't her week to set the table.|Лиза сказала, что это не ее неделя накрывать на стол.|It's dinner time."|Сейчас время ужина".|It was Mark's week to set the table.|Это была неделя Марка накрывать на стол.|132. Dinner Chores|132. Обеденные обязанности|10|10
12580|0691|"That's a bad idea," he said.|"Это плохая идея, - сказал он.|Gil thought that was a bad idea.|Гил подумал, что это плохая идея.|Concrete is hot.|Бетон горячий.|191. Buy a Goat|191. Купить козу|6|6
12581|0691|Concrete is hot.|Бетон горячий.|"That's a bad idea," he said.|"Это плохая идея, - сказал он.|Concrete is ugly.|Бетон уродлив.|191. Buy a Goat|191. Купить козу|3|2
12582|0691|Concrete is ugly.|Бетон уродлив.|Concrete is hot.|Бетон горячий.|Concrete is hard.|Бетон твердый.|191. Buy a Goat|191. Купить козу|3|2
12583|0691|Concrete is hard.|Бетон твердый.|Concrete is ugly.|Бетон уродлив.|"Nobody wants a concrete yard," he said.|"Никому не нужен бетонный двор", - сказал он.|191. Buy a Goat|191. Купить козу|3|2
17590|0963|"Don't worry," said her mom.|"Не волнуйся, - сказала ей мама.|She was embarrassed for not having money.|Ей было стыдно за то, что у нее нет денег.|Soon you're going to graduate.|Скоро ты окончишь школу.|49. Being Rich|49. Быть богатым|5|6
17591|0963|Soon you're going to graduate.|Скоро ты окончишь школу.|"Don't worry," said her mom.|"Не волнуйся, - сказала ей мама.|You will get a great job with your degree.|Получив диплом, ты найдешь отличную работу.|49. Being Rich|49. Быть богатым|5|4
17592|0963|You will get a great job with your degree.|Получив диплом, ты найдешь отличную работу.|Soon you're going to graduate.|Скоро ты окончишь школу.|One day, you will be as rich as them.|Однажды ты станешь такой же богатой, как они.|49. Being Rich|49. Быть богатым|9|6
17593|0963|One day, you will be as rich as them.|Однажды ты станешь такой же богатой, как они.|You will get a great job with your degree.|Получив диплом, ты найдешь отличную работу.|Maybe you will be even richer.|А может быть, даже станешь еще богаче".|49. Being Rich|49. Быть богатым|9|8
18266|1007|"Evans," said his teacher.|"Эванс, - сказал его учитель.|He was very afraid of the deep water.|Он очень боялся глубокой воды.|"You need to relax.|"Тебе нужно расслабиться.|93. Learning to Swim|93. Учимся плавать|4|5
18267|1007|"You need to relax.|"Тебе нужно расслабиться.|"Evans," said his teacher.|"Эванс, - сказал его учитель.|Nothing will happen to you."|С тобой ничего не случится".|93. Learning to Swim|93. Учимся плавать|4|3

UPD:
Strangely enough, if I supply lines with fields separated by | (space - pipe - space), everything is parsed correctly.

04884 | 0372 | "From now on," he said, "please call me by my middle name. | "С этого момента, - сказал он, - пожалуйста, называйте меня по среднему имени. | Herman said yes. | Герман сказал "да". | From now on, please call me Adam." | С этого момента, пожалуйста, зовите меня Адам". | 72. A New Name | 72. Новое имя | 12 | 13

Double quotes are special in CSV and need to be escaped.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.