【问题标题】:How to convert List of JSON frames to JSON frame如何将 JSON 帧列表转换为 JSON 帧
【发布时间】:2016-11-15 15:32:08
【问题描述】:

我想将 JSON 对象列表转换为单个 JSON 帧

这是我的代码

for i in user1:
    name=i.name
    password=i.password
    id1=i.id
    user = { "name" : name,
              "password" : password,
              "id":id1}
    user = json.dumps(user)
    userid.append(user)

我得到的输出是

['{"password": "A123", "name": "Sam", "id": 1}', '{"password": "B123", "name": "Sammy", "id": 2}', '{"password": "C123", "name": "Abhi", "id": 3}']

我想要的是类似

{{“密码”:“A123”,“名称”:“Sam”,“id”:1},{“密码”: “B123”、“姓名”:“Sammy”、“id”:2}、{“密码”:“C123”、“姓名”: “Abhi”、“id”:3}}

【问题讨论】:

  • 您的示例输出不是有效的 JSON。你可以有一个带有[] 的列表或一个带有键的对象。
  • 是的@KlausD。但我想制作嵌套的 JSON 帧。这可能吗?
  • 在新的 JSON 中,有多个“密码”键存在歧义 - 正如您的示例所示,您不能这样做。您可以做的是为每个内部 JSON 提供一个唯一键。
  • 你想要你的输出是 JSON 还是你真的想要一个 python dict 代替? JSON是一种格式。如果您希望输出为 JSON,则很可能会以字符串形式表示。
  • @AbhishekParikh 如果您真的想要嵌套 JSON,请创建一个唯一键,例如密码和名称的组合。在这种情况下,JSON 的新 key 将是唯一键,子 JSON 文档将是其 value

标签: python json list python-2.7


【解决方案1】:

json.dumps() 返回一个字符串,因此您将字符串附加到userid — 最终得到显示的字符串列表。

如果你想要一个使用id 作为主键的字典,你只需要:

users = {i.id: {"name": i.name, "password": i.password} for i in user1}

【讨论】:

  • 谢谢@martineau,但我想要的是字典
  • @Abhishek:哦……你的问题并不清楚。鉴于这些信息,我更新了我的答案,假设您希望使用用户的 id 作为外部字典中值的键(因为它需要是其中每个条目的唯一值)。
【解决方案2】:

我现在做的是

user = {}
name,password,id1 = [],[],[]
user1=session.query(User).all()
for i in user1:
    name=i.name
    password=i.password
    id1=i.id
    user.update({ id1:{
            "name" : name,
            "password" : password,
          }
        })

感谢大家的支持

【讨论】:

    猜你喜欢
    • 2017-05-14
    • 2020-07-31
    • 2020-09-06
    • 1970-01-01
    • 2020-10-30
    • 2023-03-31
    • 2019-08-31
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多