Python 如何连接内部数组并连接键值

标签 python json

我有 json 文件:

 [ 
 {
 "query": {
 "key1": "value1",
 "key2": "value2"
 }
 }
 ]

需要用一行连接该数组,因此输出将为:

key1=value1&key2=value2

我可以通过以下方式获取键值字符串:

import json

with open('task.json', 'r') as f:
    json_dict = json.load(f)
for key, value in json_dict.iteritems():
    print("{}={}".format(key, value))
key2=value2
key1=value1

但是如何对数组的所有元素进行连接和排序以获得此结果:

key1=value1&key2=value2

最佳答案

给定以下输入:

[
   {
      "query":{
         "key2":"value2",
         "key1":"value1"
      }
   }
]

试试这个代码:

import json
from urllib.parse import urlencode

with open('task.json', 'r') as f:
    json_dict = json.load(f)
    sorted_dict = dict(sorted(json_dict[0]['query'].items()))
    urlencode(sorted_dict)

并给出:

#output: 'key1=value1&key2=value2'

简要说明

  1. 读取Python字典中的json文件

  2. 按升序对字典进行过滤和排序(按键)

  3. 使用urlib.parse.urlencode格式化结果

关于Python 如何连接内部数组并连接键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58176141/

相关文章:

python - numpy.einsum 的输出形状

python - 点击 tkinter 窗口

java - Java 中 JSON 的 pretty-print 在控制台上工作正常,但在浏览器中不起作用

javascript - 如何在 JS 中遍历 JSON

json - 如何使用序列化程序 (Symfony 4) 创建正确格式的 json 字符串?

python - kernel_size=1 的 Conv1D 与线性层

python - 从Python中无限循环的异步函数返回结果

python - python中无向图中的连通分量

java - 使用 thrift json 序列化将对象转换为 JSON 字符串

java - 使用 gson 解析两个(或多个)对象中包含同名字段的 json