robotframework - 如何在 Robot Framework 中将单引号( ' )替换为双引号( " )?
问题描述
我有一个列表,项目是通过循环附加创建的。我想将此列表用作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}
实际结果:['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
(注意变量没有被大括号包围 - 因此您将实际变量传递给方法,而不是它的值)
为什么不使用简单的字符串替换?
因为您不想处理列表成员可能有单引号或双引号的情况 - 例如 ['N19072596HB1', "N1907'2596HB2", 'N19072596HB1', 'N19072"596HB2']。
一个简单的字符串替换将惨遭失败,而该json
库旨在按预期处理这些情况。
推荐阅读
- python - AWS Python CDK:无法从上下文提供程序 vpc-provider 检索值
- javascript - 如何通过路由路径将类添加到导航项
- here-api - 使用 Fleet Telematics API 和 vehicleType BUS 获取 Toll 和 KM 的摘要(按国家和收费系统)
- python - 熊猫通过循环连接/合并列
- c++ - 避免 C++ 模板函数中的重复代码
- python - APScheduler 关闭后无法安排新的期货
- c# - C# 中的逻辑应用程序、运行日志任务结果
- amazon-s3 - 调用 StartQueryExecution 操作时出现错误“请求中包含的安全令牌无效”UnrecognizedClientException
- rx-java2 - GroupBy 紧跟键 RxJava
- python - 为什么在 python kwargs 中不计为命名参数?