Почему Pandas DataFrame.to_csv пропускает строки при записи из нормализованного Json с использованием open ()? - PullRequest
0 голосов
/ 07 мая 2019

Уже найдено решение для моей первоначальной проблемы (путем кодирования в соответствии с соглашением).Однако я не понимаю, почему я получаю два разных файла csv, когда использую open () двумя разными способами.

Используя Pandas на Python 3.7, я нормализовал список Json с помощью pandas.io.json.json_normalize,Новый объект DataFrame имеет желаемые размеры (25 на 28).

>>>normalFrame = pd.io.json.json_normalize(jsonList)
>>> normalFrame.shape
(25, 28)                    #Awesome. So far, so good.
>>>filename = 'pandaNormJson.csv'

Теперь следующие попытки создали два разных файла:

Попытка 1 (ошибка):

>>>newCsv = open(filename, 'w', newline='')
>>>normalFrame.to_csv(newCsv)

Это создает CSVфайл с 18 из 25 записей.

Попытка 2-правильный путь (успех)

>>> with open(filename, 'w', newline='') as newCsv:
...     normalFrame.to_csv(newCsv)

Теперь у меня есть нужный файл CSV 25x28 (без заголовков).

  • Что не так с попыткой 1?
  • В чем разница между with open() as writer и writer = open()?
  • Это что-то за кулисами open () или pd.to_csv ()?
...