我有一个列表,项目是通过循环追加来创建的。我想将此列表用作json。问题在于该列表的项目使用单引号,因此它不能是json。
Get Order Items
[Tags] Get Order Items
Set Headers ${HEADER CUSTOMER}
GET ${ORDER GET BY CODE ENDPOINT}/${ORDER CODE}
Integer response status 200
${NUMBER OF ITEMS} Output $.number_of_items
${NUMBER OF ITEMS} Evaluate ${NUMBER OF ITEMS} + 1
${ORDER ITEMS} Create List
:FOR ${i} IN RANGE 1 ${NUMBER OF ITEMS}
\ Append To List ${ORDER ITEMS} ${ORDER CODE}${i}
Set Global Variable ${ORDER ITEMS}
Run Code Online (Sandbox Code Playgroud)
实际结果:['N19072596HB1','N19072596HB2','N19072596HB3','N19072596HB4','N19072596HB5']
预期结果:[“ N19072596HB1”,“ N19072596HB2”,“ N19072596HB3”,“ N19072596HB4”,“ N19072596HB5”]
这:['N19072596HB1','N19072596HB2','N19072596HB3','N19072596HB4','N19072596HB5']是python列表的字符串表示形式,他们选择为其使用单引号。
因为您的最终目标是在json中使用双引号版本,所以最好的选择是使用python的json库为您转换它,而不是将双引号替换为单引号:
${list as string}= Evaluate json.dumps($ORDER_ITEMS) json
Run Code Online (Sandbox Code Playgroud)
(请注意,变量如何不被大括号包围-因此,您要将实际变量传递给方法,而不是其值)
为什么不使用简单的字符串替换?
因为你不希望处理情况列表成员可以有一个报价,单或双-如[“N19072596HB1”,“N1907'2596HB2”,“N19072596HB1”,“N19072" 596HB2' ]
一个平凡的字符串替换json库将按预期处理这些情况时,将惨遭失败。
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |