用python对多个json文件的日期排序

2024-03-28 21:10:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个json文件,我正在尝试按日期排序。我设法把它们打印成两列,日期和文本,但日期不按顺序排列。你知道吗

当我试图和datetime混在一起时,什么也没发生。我相信有一个简单的解决办法,但我就是找不到。你知道吗

import os, json
import pandas as pd

path_to_json = 'MyPath'
json_files = [pos_json for pos_json in os.listdir(path_to_json) if pos_json.endswith('.json')]


jsons_data = pd.DataFrame(columns=['DATE', 'TEXT'])

for index, js in enumerate(json_files):
    with open(os.path.join(path_to_json, js)) as json_file:
        json_text = json.load(json_file)

        DATE = json_text['DATE'] 
        TEXT = json_text['TEXT']

        jsons_data.loc[index] = [DATE, TEXT]

print(jsons_data)

按排序顺序打印日期:

from datetime import datetime

def sort_data_by_datetime(jsons_data, field_name='DATE', datetime_format='%d.%m.%Y'):
    return sorted(jsons_data, key=lambda x: datetime.strptime(x[field_name], datetime_format))

print(jsons_data)

这是我无序结果的一个片段

          DATE                                               TEXT
0   19.08.2018  "Den Unmut der Sparer kann ich gut verstehen"\...
1   17.05.2019  „Selbstzufriedenheit ist sehr gefährlich“\n\nI...
2   25.08.2019  „Ich sehe keinen Grund zur Panik“\n\nInterview...
3   15.09.2018  "Bargeld ist gedruckte Freiheit"\n\nInterview ...

还有我的一个json文件

{"AUTHOR": "JoachimWuermeling", "PDF_URL": "-", "LOCAL_PDF_FILE": "-", "DATE": "02.10.2018", "TEXT": "Die Bundesbank digitalisiert die Bankenaufsicht\n\nInterview mit der Börsen-Zeitung\n\n\n\n02.10.2018\n\n|\nJoachim Wuermeling\n\n\nEN\n\nDas

Tags: 文件topathtextposimportjsondata
2条回答

在Danny的帮助下,这就是代码,保持日期结构和索引号不变:

jsons_data['DATE'] = pd.to_datetime(jsons_data['DATE'], format='%d.%m.%Y')
jsons_data = jsons_data.sort_values('DATE')
jsons_data.reset_index(drop=True, inplace=True)
jsons_data['DATE'] = pd.to_datetime(jsons_data['DATE'])
jsons_data = jsons_data.sort_values('DATE')

这也许会有帮助。你知道吗

相关问题 更多 >