【问题标题】:How to convert multiple lists into json in python如何在python中将多个列表转换为json
【发布时间】:2020-03-29 16:38:36
【问题描述】:

我有 4 个列表 “名称”列表是所有列表的唯一标识符。我正在通过 for 循环清除列表 Spec_titles、spec_details、varients 上的数据,并将新的详细信息附加到它们上

name=["Some_car1","Some_car2",..."Some_carx"]
spec_titles=["price", "engine", "bhp","doors" ]
spec_details=["40000$", "1200cc", "125bhp", 5]
varients=["standard","deluxe","premium"]

我想将所有这些列表组合成如下所示的 json 格式

{"vehicledetails":[

  { "Some_car1": {
    "price":"40000$",
    "engine":"1200cc",
    "bhp":"125bhp",
    "doors":"5",
    "varients":"[
        "standard",
        "deluxe",
        "premium"   ]"},
  {"Some_car2":[details]},
  .
  .
  {"Some_carx":[details]}]}

我尝试使用 list-comprehension 但无法将列表变体项目添加到 json 中,请帮我解决这个问题 提前致谢

【问题讨论】:

  • 所有车的细节都一样吗?
  • 不,不同的汽车有不同的细节,有些可能有 50 个 specs_details 和 50 个 spec_titles,而有些可能有 25 个 spec_details 和 25 个 spec_titles。 spec_details 和 spec_titles 将是同一辆车的编号
  • 那么我们在哪里或如何知道 some_car1 获取哪些数据以及 some_car2 获取哪些数据?
  • 像列表中的 spec_titles 将持有它持有的规范,而 spec_details 将持有规范的相应细节。像 spec_title[0]=spec_details[0]。我正在清除 for 循环中每个列表的详细信息并将新的详细信息附加到它上面

标签: json python-3.x


【解决方案1】:

根据您的评论,您正在清除每个循环中的 spec_details 并为新车重新填充它,您可以执行类似的操作。我已经填充了 n 辆汽车的 spec_details 是随机的

import json
from random import randint

spec_titles = ["price", "engine", "bhp", "doors"]
varients = ["standard", "deluxe", "premium"]

cars = {}
vehical_data = {"vehicaldetails": [cars]}
for n in range(5):
    name = "some_car" + str(n)
    spec_details = [str(randint(10000, 40000)) + "$", str(randint(600, 1200)) + "cc", str(randint(50, 150)) + "bhp", str(randint(3, 5))]
    car_data = dict(zip(spec_titles, spec_details))
    car_data["varients"] = varients
    cars[name] = car_data

print(json.dumps(vehical_data))

输出 - json 漂亮格式

{
   "vehicaldetails":[
      {
         "some_car0":{
            "price":"27982$",
            "engine":"848cc",
            "bhp":"90bhp",
            "doors":"5",
            "varients":[
               "standard",
               "deluxe",
               "premium"
            ]
         },
         "some_car1":{
            "price":"28400$",
            "engine":"1147cc",
            "bhp":"149bhp",
            "doors":"3",
            "varients":[
               "standard",
               "deluxe",
               "premium"
            ]
         },
         "some_car2":{
            "price":"17148$",
            "engine":"1079cc",
            "bhp":"109bhp",
            "doors":"5",
            "varients":[
               "standard",
               "deluxe",
               "premium"
            ]
         },
         "some_car3":{
            "price":"10831$",
            "engine":"991cc",
            "bhp":"90bhp",
            "doors":"3",
            "varients":[
               "standard",
               "deluxe",
               "premium"
            ]
         },
         "some_car4":{
            "price":"38619$",
            "engine":"1000cc",
            "bhp":"63bhp",
            "doors":"3",
            "varients":[
               "standard",
               "deluxe",
               "premium"
            ]
         }
      }
   ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-03
    • 2014-03-03
    • 2019-06-12
    • 2020-07-19
    • 1970-01-01
    • 2013-07-16
    • 2012-04-03
    • 2018-05-01
    相关资源
    最近更新 更多