Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将两个列表转换为动态嵌套dict,然后转换为JSON_Python_Json_List_Dictionary - Fatal编程技术网

Python 将两个列表转换为动态嵌套dict,然后转换为JSON

Python 将两个列表转换为动态嵌套dict,然后转换为JSON,python,json,list,dictionary,Python,Json,List,Dictionary,我必须浏览“颜色”列表: 对于每一项,我需要浏览每一项可能匹配的列表: list2 = ["cherries","rasperries","guava","apple","watermelon","grapes","banana"] 如果list2项的条件良好,那么我需要创建一个dict,然后将输出写入JSON文件 for x in list1: print x for y in list2: if y == criteria: myDict = {'list1-i

我必须浏览“颜色”列表:

对于每一项,我需要浏览每一项可能匹配的列表:

list2 = ["cherries","rasperries","guava","apple","watermelon","grapes","banana"]
如果list2项的条件良好,那么我需要创建一个dict,然后将输出写入JSON文件

for x in list1:
  print x
  for y in list2:
    if y == criteria:
      myDict = {'list1-item': 'fruit1':'apple'}
我的预期输出如下:

data = {'red': {'fruit1': 'cherries', 'fruit2': 'rasperries', 'fruit3': 'guava'},
      'green': {'fruit1': 'apple'},
      'other': {'fruit1': 'watermelon', 'fruit2': 'grapes', 'fruit3': 'banana'}}
写入JSON

with open("data_file.json", "w") as write_file:
    json.dump(data, write_file)
不太熟悉根据需要构建动态字典。

像这样吗

import pprint
from random import randint
list1 = ["red", "green", "other"]
list2 = ["cherries", "rasperries", "guava", "apple", "watermelon", "grapes", "banana"]


myDict = dict()
for x in list1:
    for y in list2:
        if 1 == randint(0, 1):
            l = len(myDict.get(x, []))
            if l == 0:
                myDict[x] = dict()
            myDict[x]['fruit{}'.format(l)] = y

pprint.pprint(myDict)

我不清楚你在问什么。这里有多个步骤,尝试单独解决每个步骤,如果遇到困难,请给出答案。到目前为止,您发布的内容在语法上是无效的。我同意@jornsharpe,我不明白列表2中的元素y与条件之间的关系是什么。我假设list2的元素有一些属性,可以对这些属性应用一些标准,但前面的想法只是一个猜测。
import pprint
from random import randint
list1 = ["red", "green", "other"]
list2 = ["cherries", "rasperries", "guava", "apple", "watermelon", "grapes", "banana"]


myDict = dict()
for x in list1:
    for y in list2:
        if 1 == randint(0, 1):
            l = len(myDict.get(x, []))
            if l == 0:
                myDict[x] = dict()
            myDict[x]['fruit{}'.format(l)] = y

pprint.pprint(myDict)