Я пытаюсь преобразовать CSV-файл в ND JSON. Для этого я использовал библиотеку pandas
и json
.
Вот код, который я использую:
data_df = pd.read_excel(args.input)
for col in data_df:
data_df[col] = data_df[col].replace(np.nan, '')
data_df[col] = data_df[col].astype(str)
Кажется, что Kibana не нужна строка ID, а также двойная столбцы вместо простых, поэтому я следую с этим:
some_id = 0
with open(args.output, 'w') as f:
for item in row_list:
f.write('{"index":{"_id":%i}}'%(some_id)+'\n')
new_item = item.replace("'",'"')
new_item = new_item.replace(" ",'')
f.write(new_item+'\n')
some_id += 1
Это в основном делает следующее:
Input
: некоторый CSV-файл
Output
{"index":{"_id":0}}
{"date":"2020-02-12","ip":"xxxxxxx","hostname":xxxxxxx","port":"xxxxxxx","Reason":"","version":"xxxxxxx","isp":"xxxxxxx","as":"xxxxxxx","country":"xxxxxxx","region":"xxxxxxx","city":"xxxxxxx","organization":"xxxxxxx","position":"xxxxxxx","latitude":"xxxxxxx","longitude":"xxxxxxx"}
{"index":{"_id":1}}
{"date":"2020-02-12","ip":"xxxxxxx","hostname":"xxxxxxx","port":"xxxxxxx","Reason":"","version":"xxxxxxx","isp":"xxxxxxx","as":"xxxxxxx","country":"xxxxxxx","region":"xxxxxxx","city":"xxxxxxx","organization":"xxxxxxx","position":"xxxxxxx","latitude":xxxxxxx","longitude":"xxxxxxx"}
Если я загружаю при этом Kibana
не распознает столбцы.
Если я буквально беру один и тот же .json
, удаляю и заново делаю каждый \n
вручную. Это работает ...
Есть идеи о том, что может происходить? Я не могу понять, почему вместо кодирования работает \n
вручную.
ПРИМЕЧАНИЕ. Я также пытался использовать \r\n
в качестве разделителя