如何使用Robot + Linux在json文件中以UTC(Zulu UTC)格式替换当前时间?

Posted

技术标签:

【中文标题】如何使用Robot + Linux在json文件中以UTC(Zulu UTC)格式替换当前时间?【英文标题】:How to replace with current time in UTC (Zulu UTC) format in json file using Robot + Linux? 【发布时间】:2021-05-09 01:38:34 【问题描述】:

我正在尝试使用 ROBOT 框架将 JSON 文件中的时间值替换为当前时间,但时间格式为 "YYYY-MM-DDTHH:MM:SS.SZ",我无法弄清楚...

x.json



"abc": "123",

"xyz": [ "a1b2c3"],

"time": "2021-02-04T13:01:27.4Z"


我想用当前时间或 [当前时间 + 3-5 分钟] 更新它, 假设当前时间是 18:00 我需要 JSON 中的值是 18:05

更新的 x.json



"abc": "123",

"xyz": [ "a1b2c3"],

"time": "2021-02-04T18:05:00.0Z"


我尝试使用sed,但它无法更改为"YYYY-MM-DDTHH:MM:SS.SZ" 格式。 即使date -u 也不会以上述格式返回。

有没有办法使用 ROBOT + linux 命令来做到这一点?

【问题讨论】:

这与 Python 甚至编程有什么关系?至于格式,没有什么奇怪、不寻常或特别的。它是日期literals(即表示日期的字符串)的ISO8601 格式,被大多数语言、数据库、javascript 本身和JSON 的事实上的日期标准所使用。 所有 JSON解析器和序列化器识别它并以该格式发出日期。您可以反序列化原始 JSON 文本,修改您想要的对象,然后将它们序列化回文件 这能回答你的问题吗? Extract json value with sed 更新后的文件是否必须具有完全相同的格式(多行,有空行),还是仅是有效的 JSON? 【参考方案1】:

Robot 有一个 DateTime 库,可以轻松将字符串转换为日期,并获取当前日期。一旦你有了一个日期对象,你就可以随心所欲地操作它。

以下示例将执行以下操作:

从 x.json 导入 json 数据 将其转换为 python 对象 获取当前日期 将新日期保存到 python 对象 将 python 对象转换回 json 字符串 将json字符串写入x.json

这不会保留原始数据的确切格式(即:不保留空白行),但 x.json 仍将是有效的 json,但时间已更改。

*** Settings ***
Library  DateTime
Library  OperatingSystem
Library  Collections

*** Test cases ***
Example 1
    # read the raw data
    $json=   Get file   x.json

    # convert the data to a python object
    $object=  Evaluate  json.loads($json)

    # Get the current date/time in UTC
    $new_date=  get current date  time_zone=utc

    # save the new data to the dictionary
    Set to dictionary  $object  time=$new_date

    # convert the object back to json
    $json=  evaluate  json.dumps($object, indent=4)

    log to console  \n$json

    # overwrite the original file with the new json
    create file  x.json  content=$json

【讨论】:

谢谢你,但我不想硬编码时间值,它必须替换为当前/当前时间。 @UdayT:这只是一个例子。如果你想要当前时间,DateTime 库有一个函数可以返回它,然后你可以使用当前时间而不是硬编码的时间。你也想要当前日期吗?那会更容易。 是的@Bryan,正是我正在寻找的,日期和时间替换为当前日期和时间。 你的意思是:“获取当前日期 UTC”?

以上是关于如何使用Robot + Linux在json文件中以UTC(Zulu UTC)格式替换当前时间?的主要内容,如果未能解决你的问题,请参考以下文章

ROBOT 中的 Json 处理

需要在 Linux 服务器中使用 java Robot 类的替代品

如何在 Robot Framework 中运行无头测试

在 Robot 框架中解析 JSON 输出 [在论坛中尝试了大多数选项]

如何使用 Robot Framework 比较两个 csv 文件

12.LInux磁盘,系统文件概念《Mr.Robot》