Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python解析具有ISODate的JSON文件_Json_Python 3.x - Fatal编程技术网

用Python解析具有ISODate的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()助手而不是它的字

我有一个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()
助手而不是它的字符串表示形式转储到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