用Python解析具有ISODate的JSON文件
我有一个JSON文件,其中有一些行,如:用Python解析具有ISODate的JSON文件,json,python-3.x,Json,Python 3.x,我有一个JSON文件,其中有一些行,如: “updatedAt”:ISODate(“2018-11-20T09:32:16.732+0000”), 我尝试了json.loads,但它有一个错误json.decoder.jsondeCoderror:期望值:第2行第13列(char 15) 我相信问题出在ISODate()上,但是我如何用Python处理这个问题呢 非常感谢首先,这不是有效的JSON。我猜ISODATE(“…”是从MongoDB生成的,可能是直接将ISODATE()助手而不是它的字
“updatedAt”:ISODate(“2018-11-20T09:32:16.732+0000”),
我尝试了json.loads
,但它有一个错误json.decoder.jsondeCoderror:期望值:第2行第13列(char 15)
我相信问题出在ISODate()上,但是我如何用Python处理这个问题呢
非常感谢首先,这不是有效的JSON。我猜
ISODATE(“…”
是从MongoDB生成的,可能是直接将ISODATE()
助手而不是它的字符串表示形式转储到JSON中
在任何情况下,您都可以对整个JSON字符串使用正则表达式来去除ISODate(“…”
),将日期作为字符串检索,然后使用python dateutil
将值解析为datetime.datetime
调子
import json
import dateutil.parse
import re
json_str = ....
clean_json = re.compile('ISODate\(("[^"]+")\)').sub('\\1', json_str)
json_obj = json.loads(clean_json)
# use dateutil.parser.parse(s) to parse each date into a datetime.datetime