我想为我的团队编写一个自定义json模块
首先我创造了一个json.py文件'文件夹(命名空间)'dqa_fileio/config'下的文件
所以当其他人想使用我的模块时,应该由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])
这行不通,因为你认为python应该如何知道应该选择哪一个呢?在
只要您希望
import json
导入正确的模块,您就可以选择一个不同的名称。在有关同一类型问题的更多信息,请查看here。在
我唯一建议的就是使用一个软件包。在
将您的
json.py
模块放入某种包中。在例如:
将
common
放入PYTHONPATH
中,并/或使用合适的setup.py
将其打包,您的团队可以在其项目中安装和使用。在然后按如下方式导入:
^{pr2}$参见:https://docs.python.org/2/tutorial/modules.html
问题是python认为import json只是导入自身,而您的类没有load方法。解决这个问题的唯一方法是更改文件名,或者使用一些非常不规则的循环导入。在
相关问题 更多 >
编程相关推荐