【问题标题】:How can I assign varaibles to json response?如何将变量分配给 json 响应?
【发布时间】:2020-05-19 07:05:37
【问题描述】:

在 python 中运行脚本后,我得到了这个结果。

[["Query 3", "2020-01-29 15:41:53", "10.1.1.5", "10.8.0.2", "SELECT p.name, XXX XXX"], ["Query 11", "2020-01-29 15:41:52", "10.1.1.5", "10.8.0.2", "SELECT CONNECTION_ID()\\G"], ["Query 12", "2020-01-29 15:41:52", "10.1.1.5", "10.8.0.2", "SELECT current_user()\\G"]]

如何为查询中的每个字段分配变量?

[["queryID", "date", "ipIntern", "ipBlabla", "queryFullfilled"], ["queryID], REPEAT....

每个查询总是有 5 个字段,所以我猜它更容易。

我想为每个字段分配变量,因为我想将它们插入数据库中的表中。

我只需要运行另一个脚本来获取所有带有变量的值,它可以使用 PhpPythonPerl。 p>

【问题讨论】:

    标签: python php perl


    【解决方案1】:

    您可以将它们存储在dictionarieslist 中并通过key 访问它们,例如这将构建list

    responses = [["Query 3", "2020-01-29 15:41:53", "10.1.1.5", "10.8.0.2", "SELECT p.name, XXX XXX"], ["Query 11", "2020-01-29 15:41:52", "10.1.1.5", "10.8.0.2", "SELECT CONNECTION_ID()\\G"], ["Query 12", "2020-01-29 15:41:52", "10.1.1.5", "10.8.0.2", "SELECT current_user()\\G"]]
    fields = ["queryID", "date", "ipIntern", "ipBlabla", "queryFullfilled"]
    
    parsed_response = [
        dict(zip(fields, response)) for response in responses
    ]
    
    print(parsed_response)
    
    >>> [{'queryID': 'Query 3', 'date': '2020-01-29 15:41:53', 'ipIntern': '10.1.1.5', 'ipBlabla': '10.8.0.2', 'queryFullfilled': 'SELECT p.name, XXX XXX'}, {'queryID': 'Query 11', 'date': '2020-01-29 15:41:52', 'ipIntern': '10.1.1.5', 'ipBlabla': '10.8.0.2', 'queryFullfilled': 'SELECT CONNECTION_ID()\\G'}, {'queryID': 'Query 12', 'date': '2020-01-29 15:41:52', 'ipIntern': '10.1.1.5', 'ipBlabla': '10.8.0.2', 'queryFullfilled': 'SELECT current_user()\\G'}]
    

    这是一个示例,如果您想访问 n 响应的 field 值:

    n = 1
    field = "ipIntern"
    print(parsed_response[n][field])
    
    
    >>> 10.1.1.5
    

    【讨论】:

    • 这是最可行的解决方案吗?我的意思是我真的不希望你这样做,但我可以处理。我的想法是当循环完成它将添加到数据库的第一个条目时,循环得到的每个查询(我有这个),所以我想要变量 $queryID 将输出“查询 1”并将添加到数据库中与所有其他字段,然后重置,$queryID 将输出“查询 2”
    • 我用你的代码得到的输出pastebin.com/H5FM8SG9
    • @HenriqueMota 我的response 变量是list,从您在pastebin 中向我展示的输出中,您将其用作str。我给了你一个完全可重现的例子,它输出我打印的内容,先测试它,然后根据你的需要尝试修改它。
    • 我测试了您的代码及其工作,但我只是将硬核更改为我必须生成的代码.. 输出或硬核是一样的,为什么它会这样显示,我该怎么做克服这个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 2019-08-19
    相关资源
    最近更新 更多