Я использую приведенный ниже код Python для управления набором файлов JSON в указанной папке. Я извлекаю nt
из данных и хочу создать новую пару ключ-значение. Если бы я напечатал nt
на своем экране, я получил бы значения, как показано ниже.
nt 223
nt 286
nt 315
Это выглядит как целые числа для меня. Однако, если я использую инструмент визуализации Kibana для обработки, он говорит об этом (т.е. NXT
- это проанализированные строковые поля). Я хочу, чтобы эти значения распознавались как целые числа? Это как-то связано с тем, как я кодирую свой файл json (ensure_ascii=True
), или JSON value
всегда является строкой?
#Process 'new' events to extract more info from 'Messages'
rootDir = '/home/s_parts'
for dirName, subdirList, fileList in os.walk(rootDir):
for fname in fileList:
fname='s_parts/'+fname
with open(fname, 'r+') as f:
json_data = json.load(f)
m = json_data['Msg']
nt = int(re.findall(r"NXT:\s*([^,m)]*)",m)[0])
json_data["NXT"] = nt
f.seek(0)
json.dump(json_data,f,ensure_ascii=True)