CSV экспортирует все данные из JSON, когда мне нужна только часть из них. ПитонPython

Программы на Python
Anonymous
CSV экспортирует все данные из JSON, когда мне нужна только часть из них. Питон

Сообщение Anonymous »

Я немного не понимаю, что происходит с этим кодом. Я создаю код Python, который отображает на экране TKInter информацию из файла JSON в определенном диапазоне, эти данные затем можно превратить в файл CSV для работы в Excel или доступе, я использую if alerttime (время в часах) поскольку последнее обновление данных внутри файла JSON) меньше часов ошибок (время, указанное в поле ввода, или 48 по умолчанию), то код делает запись для каждого элемента в основном файле JSONНо вот что странно: он работает идеально везде, кроме экспорта в CSV. дисплей tk, счетчик чисел, все отпечатки, буквально все работает правильно, кроме вывода CSV.
в моем тесте я использую json, содержащий 10 элементов в данных json (реальная жизнь будет 100), и если я введу количество ошибок как 200, я получу (везде) 5 результатов, однако, когда я смотрю на экспортированный файл CSV, я вижу все 10 записей в JSON. если я вручную удалю их в json, чтобы сказать 7, и снова запущу его, я получу 5 записей везде, но все 7 в json записываются в csv
есть идеи, как я могу ограничить это чтобы экспорт CSV экспортировал только правильные данные?
for item in data['People']:
# WarnTimeC is calculated here but the code is irelevent for the problem so ive removed it
# ErrorHours is gathered from an entry box
if WarnTimeC < ErrorHours:
CSVName = 'API_Programs/Output CSV/CSV_Output_' + str(datetime.now().strftime('%d_%m_%Y_%H_%M_%S')) + '.csv'
with open(CSVName, "w", newline="") as file:
csv_file = csv.writer(file)
csv_file.writerow([
'First_Name',
'Last_Name',
'City',
'Job',
'Revenue',
'Last_Update',
'API_CHECK',
])
for item in data['People']:
if WarnTimeC < ErrorHours:
csv_file.writerow([
item['general'].get('FName', 'N/A'),
item['general'].get('LName', 'N/A'),
item['specific'].get('City', 'N/A'),
item['specific'].get('Job', 'N/A'),
item['specific'].get('Revenue', 'N/A'),
item['specific'].get('Update-time', 'N/A').replace("-","/").replace("T"," ").replace("Z",""),
CALLZULU,
])
print("done")
CSVcounter += 1
# sanity check prints
print(ErrorHours)
print(WatnTimeC)
print(CSVcounter)
print(dateTimeDifferenceInHours)


Подробнее здесь: https://stackoverflow.com/questions/781 ... -it-python

Вернуться в «Python»