【发布时间】:2019-09-25 20:26:49
【问题描述】:
我有一个 JSON 文件,我想将该 JSON 数据处理为键值对。
这是我的 JSON 文件
```"users" : {
"abc": {
"ip": "-------------",
"username": "users@gmail.com",
"password": "---------",
"displayname": "-------",
"Mode": "-----",
"phonenumber": "1********1",
"pstndisplay": "+1 *******5"
},
"efg": {
"ip": "-------------",
"username": "user1@gmail.com",
"password": "---------",
"displayname": "-------",
"Mode": "-----",
"phonenumber": "1********1",
"pstndisplay": "+1 *******5"
},
"xyz": {
"ip": "-------------",
"username": "user2@gmail.com",
"password": "---------",
"displayname": "-------",
"Mode": "-----",
"phonenumber": "1********1",
"pstndisplay": "+1 *******5"```
这里我尝试获取json数据
``` ${the file as string}= Get File ${users_json_path}
${parsed}= Evaluate json.loads("""${the file as string}""") json
${properties}= Set Variable ${parsed["users"]}
Log ${properties}
:FOR ${key} IN @{properties}
\ ${sub dict}= Get From Dictionary ${properties} ${key}
\ Log ${sub dict}
\ Signin ${sub dict}[ip] ${sub dict}[username] ${sub dict}[password] ${sub dict}[Mode]
\ Log ${key} is successfully signed in.
预期行为 - 我正在解析的键应该从 JSON 文件中按顺序排列。例如,abc 会先登录,然后是 efg 和 xyz。
${key} = abc
${key} = efg
${key} = xyz
以下是问题: 1)我们将如何按顺序从 JSON 中获取用户?现在它正在随机 2) 实现这一目标的最佳逻辑是什么?
【问题讨论】:
-
字典不保证按任何特定顺序排列。您可能必须手动解析原始字符串。或者更改后端软件以返回字典列表而不是字典。
-
@BryanOakley - 如何在机器人框架中实现这一点?你能举个例子吗?
标签: json python-2.7 robotframework