使用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文件的日期进行排序的主要内容,如果未能解决你的问题,请参考以下文章