#python-3.8
#python-3.8
Вопрос:
У меня есть скрипт Python, который принимает аргумент JSON.
Когда я запускаю этот скрипт из терминала / оболочки, он запускается. Вот точный код, который я выполняю на терминале
python bot.py dca strin '{"marketplace":"USDT","tokenlist":[{"token":"C98","min":0,"max":500},{"token":"CHESS","min":1,"max":5}],"compression":1,"buyamount":20,"tp":3,"sl":10,"continueflag":0,"rsi_level":0,"trstart":1.5,"trstop":0.1,"dca":[[2,100],[4,100],[6,100],[8,100],[10,100],[15,100]],"host":"localhost","user":"root","password":"root","database":"trading"}'
Моя ошибка возникает, когда я создаю другой скрипт / функцию Python для выполнения моего bot.py .
В моей функции я запускаю бота.py с использованием подпроцесса.вызовите, как показано ниже.
args = '{"marketplace":"USDT","tokenlist":[{"token":"C98","min":0,"max":500},{"token":"CHESS","min":1,"max":5}],"compression":1,"buyamount":20,"tp":3,"sl":10,"continueflag":0,"rsi_level":0,"trstart":1.5,"trstop":0.1,"dca":[[2,100],[4,100],[6,100],[8,100],[10,100],[15,100]],"host":"localhost","user":"root","password":"root","database":"trading"}'
subprocess.call(["python", "\bot_5_12/runner_single.py dca strin", args])
Однако, когда я выполняю свою функцию, я получаю сообщение об ошибке
json.decoder.JSONDecodeError: ожидаемое имя свойства, заключенное в двойные кавычки: строка 1, столбец 2 (символ 1)
Пожалуйста, посоветуйте, потому что я не знаю, как отладить это с моей стороны.
Ответ №1:
Вы должны попытаться заменить кавычки ( ‘ на «), например :
args = "{"marketplace":"USDT","tokenlist":[{"token":"C98","min":0,"max":500},{"token":"CHESS","min":1,"max":5}],"compression":1,"buyamount":20,"tp":3,"sl":10,"continueflag":0,"rsi_level":0,"trstart":1.5,"trstop":0.1,"dca":[[2,100],[4,100],[6,100],[8,100],[10,100],[15,100]],"host":"localhost","user":"root","password":"root","database":"trading"}"
args = str(args).replace(" ","")
subprocess.call(["python", "\bot_5_12/runner_single.py dca strin", args])
Протестируйте свой JSON прямо здесь.
Комментарии:
1. Я попробовал это с двойными кавычками, и он по-прежнему выдает ту же ошибку.
2. Попробуйте удалить пробелы из JSON, используя: str(аргументы).replace(» «,»»)