如何在python中使用用户输入列表更新json?

时间:2016-02-19 17:43:45

标签: python python-2.7

我在python中编写命令行脚本来执行我的scala代码。但我正在使用List格式化输入json。

见下面python脚本的一部分:

CONTEXT_SETTINGS = """
    {
    "CustomerTable": {
        "table": "%s",
        "host" : "localhost",
    "customerList" : %s
        }
    }
    """
class CmdLineParser():
    def __init__(self, description):
        self.parser = argparse.ArgumentParser(
            description=description)

    self.add_argument('-v', '--verbose', default=False,
                      action='store_true',
                      help='Verbose mode')   
    self.add_argument('-t', '--table', nargs='?',
                     help='my table', required=True)

    def add_argument(self, *args, **kwargs):
        self.parser.add_argument(*args, **kwargs)

    def get_ctx_config(self, cust_sub_ids):
        args = self.parser.parse_args()

        context_dict = json.loads(
            CONTEXT_SETTINGS % (args.table, customerids))
        return context_dict

如何加载json文件来设置customerid。 customerid = ['1234','2345','5678'.....]和get_ctx_config是从主文件调用的。

以便输入json文件应该成为

{
"CustomerTable": {
    "table": "mytable",
    "host" : "localhost",
    "customerList" : ["1234", 2345", "5678"]          
  }
}

和context_dic返回应该像:

 u'CustomerTable': {u'table': u'mytable', u'host': u'localhost', u'cust_sub_id': [u'1234', u'1235', u'1236', u'1237', u'1234']}

如何编写python脚本来更新。

 context_dict = json.loads(
         CONTEXT_SETTINGS % (args.table, customerids))

以及在CONTEXT_SETTING中设置列表类型所需的内容,例如字符串的%s。

1 个答案:

答案 0 :(得分:3)

为什么在你想要的只是字典时使用JSON?

context_dict = {
"CustomerTable": {
    "table": args.table,
    "host" : "localhost",
    "customerList" : customerids          
  }
}