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

Posted

技术标签:

【中文标题】使用python对多个json文件的日期进行排序【英文标题】:Sort dates of multiple json files with python 【发布时间】:2020-01-04 01:06:45 【问题描述】:

我有多个 json 文件,我正在尝试按日期对它们进行排序。我设法将它们打印在 2 列中,即 DATE 和 TEXT,但 DATES 不按顺序排列。

当我试图弄乱日期时间时,什么也没有发生。我确信有一个简单的解决方案,但我就是找不到。

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)

这是我的无序结果的 sn-p

          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

【问题讨论】:

【参考方案1】:
jsons_data['DATE'] = pd.to_datetime(jsons_data['DATE'])
jsons_data = jsons_data.sort_values('DATE')

这可能会有所帮助。

【讨论】:

天哪,甜!谢谢,丹尼完成了这项工作!【参考方案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)

【讨论】:

以上是关于使用python对多个json文件的日期进行排序的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中按日期对 CSV 进行排序

使用动态 LINQ 按一个或多个属性对 JSON 进行排序

使用 jolt 对 json 数组中的数组进行排序

如何在 Json 上对日期数据表进行排序

如何根据日期对SQL Server中的多个列进行排序

PHP从多个json文件中的键值排序结果