将多语言日期时间格式转换为“%Y-%m-%d”

如何解决将多语言日期时间格式转换为“%Y-%m-%d”

我正在从维基百科页面底部抓取参考。这些引用包含一个我可以解析的OpenUrl链接。这是一个示例:

<span 
    title="ctx_ver=Z39.88-2004&amp;
    rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;
    rft.genre=unkNown&amp;
    rft.jtitle=The+Tennessean&amp;
    rft.atitle=Belmont+University+awarded+final+2020+presidential+debate&amp;
    rft.date=2019-10-11&amp;
    rft.aulast=Tamburin&amp;
    rft.aufirst=Adam&amp;
    rft_id=https%3A%2F%2Fwww.tennessean.com%2Fstory%2Fnews%2F2019%2F10%2F11%2Fbelmont-university-nashville-hosts-presidential-debate-2020%2F3941983002%2F&amp;
    rfr_id=info%3Asid%2Fen.wikipedia.org%3A2020+United+States+presidential+election" 

    class="Z3988">
</span>

我成功获取rft.date值。但是,值的格式会有所不同。我正在尝试做两件事:

  1. “猜”语言并翻译(如果可能)
  2. 确定格式并重新格式化为"%Y-%m-%d"

没有语言问题,我将可以使用dateutil(请参阅页面的一半)。但是,语言问题使我完全难过。

对于这样的示例,有人对如何处理翻译有任何建议吗?

0 "մայիսի 8,2019"
1 "մայիսի 6,2019"
2 "մայիսի 10,2019"
3 "June 20,2019"
4 "January 16,2019"
5 "Aug 8,2019"
6 "Aug 4,2019"
...
12 "9 August 2019"
13 "8 May 2019"
14 "8 July 2020"
15 "8 July 2019"
16 "8 January 2020"
17 "8 de enero de 2020"
18 "7 tháng 8 năm 2019"
19 "7 May 2020"
...
33 "31 de diciembre de 2019"
...
40 "28 December 2019"
41 "28 de diciembre de 2019"
42 "27 de septiembre de 2019"
43 "26 November 2019"
44 "25 tháng 6 năm 2019"
45 "25 May 2019"
46 "25 march 2020"
47 "25 June 2019"
48 "24 June 2019"
49 "23 July 2019"
50 "22 tháng 7 năm 2019"
51 "22 July 2020"
52 "22 de abril de 2019"
53 "21 August 2019"
54 "2020-10-18"
55 "2020-09-21"
56 "2020-09-19"
57 "2020-09-16"

解决方法

您可以使用googletrans python库来实现您的目标。 我在本地尝试过,似乎效果很好。

代码如下:

import pandas as pd
from googletrans import Translator

translator = Translator()

df = pd.read_csv('input_file.tsv',sep=' ',header=None,index_col=0)
df.columns = ['date']

df['translated'] = df['date'].map(lambda x: translator.translate(x).text)
print(df)

输出:

                        date         translated                                             
0             մայիսի 8,2019        May 8,2019
1             մայիսի 6,2019        May 6,2019
2            մայիսի 10,2019       May 10,2019
3              June 20,2019      June 20,2019
4           January 16,2019   January 16,2019
5                Aug 8,2019        Aug 8,2019
6                Aug 4,2019        Aug 4,2019
12             9 August 2019      9 August 2019
13                8 May 2019         8 May 2019
14               8 July 2020        8 July 2020
15               8 July 2019        8 July 2019
16            8 January 2020     8 January 2020
17        8 de enero de 2020    January 8,2020
18        7 tháng 8 năm 2019     August 7,2019
19                7 May 2020         7 May 2020
33   31 de diciembre de 2019  December 31,2019
40          28 December 2019   28 December 2019
41   28 de diciembre de 2019       Dec 28,2019
42  27 de septiembre de 2019       Sep 27,2019
43          26 November 2019   26 November 2019
44       25 tháng 6 năm 2019      June 25,2019
45               25 May 2019        25 May 2019
46             25 March 2020      25 March 2020
47              25 June 2019       25 June 2019
48              24 June 2019       24 June 2019
49              23 July 2019       23 July 2019
50       22 tháng 7 năm 2019      July 22,2019
51              22 July 2020       22 July 2020
52       22 de abril de 2019       Apr 22,2019
53            21 August 2019     21 August 2019
54                2020-10-18         2020-10-18
55                2020-09-21         2020-09-21
56                2020-09-19         2020-09-19
57                2020-09-16         2020-09-16

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?