【发布时间】:2019-04-28 21:12:09
【问题描述】:
我从我的 API 获取 iso 格式的日期。
当我在做的时候:
df = DataFrame(results)
df.to_csv(path_or_buf=file_name, index=False, encoding='utf-8',
compression='gzip',
quoting=QUOTE_NONNUMERIC)
我查看了我看到的 CSV,例如:
lastDeliveryDate
2018-11-21 16:25:53.990000-05:00
然而,
当我这样做时:
df = DataFrame(results)
df.to_json(path_or_buf=file_name, orient="records",compression='gzip', lines=True)
我看到(其他记录):
"lastDeliveryDate":1543258826689
这是个问题。
当我将数据从 CSV 加载到 Google BigQuery 时,一切都很好。日期解析正确。
但是当我将加载更改为 Json 时。它没有正确解析日期。
我以这种格式查看日期:
50866-01-09 23:46:40 UTC
这是因为to_json() 和to_csv() 对iso_format 中的日期产生不同的结果
我该如何解决这个问题?我必须编辑数据框并将所有日期列转换为常规 UTC 吗?我怎样才能做到这一点?为什么需要 to_json() 而不是 for to_csv() ?
正如How do I translate an ISO 8601 datetime string into a Python datetime object? 解释的那样尝试做:
df["lastDeliveryDate"] = dateutil.parser.parse(df["lastDeliveryDate"])
但它给出了:
TypeError: Parser 必须是字符串或字符流,而不是 Series
【问题讨论】: