首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传递带有a解析的JSON字典和char

传递带有a解析的JSON字典和char
EN

Stack Overflow用户
提问于 2017-07-06 20:47:42
回答 1查看 1.1K关注 0票数 0

我试图向python传递两个参数,一个是只读JSON文件,另一个是char。事实上,我想要两个位置的参数,但我也做不到,所以让char是可选的。最后,我将阅读字典,而字符将是我的关键。

当我像下面这样尝试时,第二个参数被传递为None。我不明白它为什么是空的。你有什么想法吗?

非常感谢!

python3 myProg.py dict.json -a

代码语言:javascript
运行
复制
import json
import argparse

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description = 'program')
    parser.add_argument('json', nargs = 1, type = argparse.FileType('r'))
    parser.add_argument('-args', nargs ="?")

    arguments = parser.parse_args()
    dictionary = json.load(arguments.json[0])
    arg_start = arguments.args

收到此错误:

命名空间(args=None,json=<_io.TextIOWrapper名称=‘json=<_io.TextIOWrapper.json’模式=‘r’编码=‘utf-8’>)

EN

回答 1

Stack Overflow用户

发布于 2017-07-06 20:56:30

看起来你的json文件没问题。如果省略了nargs=1,就可以使用:

代码语言:javascript
运行
复制
dictionary = json.load(arguments.json)

-argsnargs='?'。这意味着省略一个论点是可以的。如果不使用它的所有值,将是Actions default (当前为None)。

如果仅作为-a提供,则该值是Action的const (也是None)。

如果以-a foo的形式提供,它将设置该字符串。

如果您将该argument定义为位置、普通的'args‘(没有-),那么它将接受json文件名之后的下一个字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44958582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档