Что может быть возможным решением для ImportError: нет модуля с именем '[{"isInventoryOperationEnable": 1'? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь преобразовать строку данных Ответа в словарь в Robot Framework:

Create Session  Get_Inventory_Details   ${Base_URL}         
${Headers}= Create Dictionary   Content-Type=application/json   Authorization=bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InByaXRpc3dhaW4iLCJpYXQiOjE1Njc1MTQ2NDd9.o3qTPbj2KH6AgHpIf1BLV5nOlGL-fR83wSGAYyuWsBQ      
${Response}=    Get Request Get_Inventory_Details   inventorybyOutlet/7 headers=${Headers}  
Log To Console  ${Response.status_code}             
Log Many    ${Response.content}             
${actual_response}= Convert To String   ${Response.status_code}         
Should Be Equal ${actual_response}  200         
${Get_response}=    Evaluate    json.loads('''${Response.content}''')   '${Response.content}'.replace(' ','_')      

Ошибка при запуске этого кода:

ImportError: No module named '[{"isInventoryOperationEnable":1

Снимок экрана сЖурнал RobotFramework TestCase с ошибочным шагом

Как исправить эту ошибку?

1 Ответ

0 голосов
/ 07 ноября 2019

Когда вы вызываете Evaluate , он ожидает, что его вторым аргументом является список из одного или нескольких модулей Python. Кажется довольно ясным, что '${Response.content}'.replace(' ','_') не является допустимым списком модулей.

Я не знаю, почему вы пытаетесь передать значение в Оценка дважды. Вы должны передать его только один раз.

${Get_response}=    Evaluate    json.loads('''${Response.content}''')

Или, если он жалуется, что не знает о модуле json, то

${Get_response}=    Evaluate    json.loads('''${Response.content}''')  json
...