Уже найдено решение для моей первоначальной проблемы (путем кодирования в соответствии с соглашением).Однако я не понимаю, почему я получаю два разных файла 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 ()?