文本文件转 JSON

ph3*_*3ro 2 text-processing json jq

我有一个文本文件IP:PORT,例如

1.1.1.1:1919
2.2.2.2:111
1.1.1.1:987
Run Code Online (Sandbox Code Playgroud)

我需要在 JSON 格式的脚本中使用它们:

async def main(loop):
    servers = [{
        "address": "ip",
        "port": port
    }, {
        "address": "ip",
        "port": port
    }]
Run Code Online (Sandbox Code Playgroud)

我需要输出为

async def main(loop):
    servers = [{
        "address": "1.1.1.1",
        "port": 1919
    }, {
        "address": "2.2.2.2,
        "port": 111
    }, {
        "address": "1.1.1.1,
        "port": 987
    }]
Run Code Online (Sandbox Code Playgroud)

我正在使用Linux。

gle*_*man 6

jq -nRr '
    [ inputs | split(":") | {address: first, port: last} ]
    | "async def main(loop):\n    servers = \(.)"
' addresses
Run Code Online (Sandbox Code Playgroud)

输出

async def main(loop):
    servers = [{"address":"1.1.1.1","port":"1919"},{"address":"2.2.2.2","port":"111"},{"address":"1.1.1.1","port":"987"}]
Run Code Online (Sandbox Code Playgroud)

  • 哦,您可能需要 `(last|tonumber)` 将字符串转换为端口号。 (2认同)