我想为我的团队编写一个自定义json模块,
首先我在文件夹(命名空间)'dqa_fileio / config'
下创建了一个'json.py'文件所以当其他人想要使用我的模块时,应该由import dqa_fileio.config.json
然后,我想创建一个read_file
方法来加载json文件
但我得到AttributeError: 'module' object has no attribute 'load'
我认为因为file_name
被称为json.py,
但是我想保留文件名,无论如何像Ruby那样我可以打开一个类来扩展它的能力吗?但似乎json
是一个文件夹(命名空间)而不是一个类?如果有任何错误的概念,请纠正我。感谢
import json
class Json(object):
def __init__(self):
pass
def read_file(self, file_name):
return json.load(open(file_name, 'r'))
if __name__ == '__main__':
Json().read_file(sys.argv[1])
答案 0 :(得分:1)
答案 1 :(得分:1)
我建议的另一件事是使用包。
将json.py
模块放入某种软件包中。
e.g:
common
|-__init__.py
|-json.py
将common
放入您的PYTHONPATH
和/或将其与您的团队可以在其项目中安装和使用的相应setup.py
很好地打包。
然后导入它:
from common import json
答案 2 :(得分:0)
问题是python认为import json只是导入自己,而你的类没有加载方法。解决这个问题的唯一方法是更改文件名,或使用一些非常规的循环导入。