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库提供的内置机制。
ar7v8xwq1#
可以使用正则表达式将ISODate(dt)替换为dt:
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") }'''
1条答案
按热度按时间ar7v8xwq1#
可以使用正则表达式将
ISODate(dt)
替换为dt
:输出:
输入数据: