pandas json normalize如何解析下面的ISO日期?

vuktfyat  于 2023-05-21  发布在  其他
关注(0)|答案(1)|浏览(95)

pandas的json_normalize如何解析包含时区小时的ISODate?

i.e.
    "startDate" : ISODate("2021-02-01T22:37:37.000+02:00"),
    "entryDate" : ISODate("2021-02-01T22:37:37.278+02:00"),

最好的问候,Vasilios
我没有尝试任何东西,因为我使用了pandas库提供的内置机制。

ar7v8xwq

ar7v8xwq1#

可以使用正则表达式将ISODate(dt)替换为dt

import pandas as pd
import re
import io

df = pd.read_json(io.StringIO('[' + re.sub(r'ISODate\(([^)]+)\)', r'\1', data) + ']'), 
                  convert_dates=['startDate', 'entryDate'])

输出:

>>> df
  _Id                      startDate                      entryDate
0   1  2021-02-01T22:37:37.000+02:00  2021-02-01T22:37:37.278+02:00

>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1 entries, 0 to 0
Data columns (total 3 columns):
 #   Column     Non-Null Count  Dtype                                
---  ------     --------------  -----                                
 0   _Id        1 non-null      int64                                
 1   startDate  1 non-null      datetime64[ns, pytz.FixedOffset(120)]
 2   entryDate  1 non-null      datetime64[ns, pytz.FixedOffset(120)]
dtypes: datetime64[ns, pytz.FixedOffset(120)](2), int64(1)
memory usage: 152.0 bytes

输入数据:

# A list of dicts
data = '''\
{
  "_Id": "1",
  "startDate": ISODate("2021-02-01T22:37:37.000+02:00"),
  "entryDate": ISODate("2021-02-01T22:37:37.278+02:00")
}'''

相关问题