У меня небольшая проблема. Во-первых, я знаю, что этот код может стоять отдельно и не быть в классе, но я бы предпочел, чтобы он был в классе. Во-вторых, когда я запускаю код, я получаю эту ошибку TypeError: set_options() takes exactly 2 arguments (1 given)
.
Вот мой код. Если бы кто-нибудь мог указать мне правильное направление, я был бы признателен. Я предполагаю, что метод set_options не получает мой экземпляр jobj. Правильно ли я полагаю, что и как можно это исправить? пс. У меня есть правильный импорт, и вот моя команда py на терминале python test.py radar 127.0.0.1 hashNumber testplan:speed
class TransferStuff(object):
tool = sys.argv[1]
target = sys.argv[2]
hash = sys.argv[3]
options = sys.argv[4]
def set_options(self, test_options):
option_arr = test_options.split(',')
new_arr = [i + ':{}'.format(i) for i in option_arr if ':' not in i]
for i in option_arr:
if ':' in i:
new_arr.append(i)
d = {}
for i in new_arr:
temp = i.split(':')
d[temp[0]] = temp[1]
return d
data = {'target': target, 'test': tool, 'HASH': hash,
'options': set_options(options)}
def write_to_json(self):
"""Serialize cli args and tool options in json format.
Write stream to json file.
"""
with open('envs.json', 'w') as fi:
json.dump(TransferStuff.data, fi)
if __name__ == "__main__":
try:
jobj = TransferStuff()
jobj.write_to_json()