有没有办法强制导入是绝对的而不是相对的?
我“覆盖”了 Python 标准库json
模块,所以在我的项目中我总是使用正确的编码器和参数:
project/foo/json.py
: (标记这个文件名)
import json as pyjson
class ComplexEncoder(pyjson.JSONEncoder):
def default(self, obj):
if hasattr(obj, 'isoformat'):
return obj.isoformat()
else:
if type(obj) == file:
return "filestream"
raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (type(obj), repr(obj))
def dumps(data):
return pyjson.dumps(data, cls=ComplexEncoder, check_circular=False, separators=(',', ':'), ensure_ascii=False)
def loads(data):
return pyjson.loads(data)
当我导入这个文件时,我得到了可怕的AttributeError: 'module' object has no attribute 'JSONEncoder'
. Aprint(pyjson.__file__)
证实了我的怀疑,即从本地包而不是从 Python 标准库import json as pyjson
导入。json
有没有办法强制导入是绝对的,所以本地目录被忽略?