如何在python中从JSON列表导出嵌套对象

如何在python中从JSON列表导出嵌套对象,python,json,mongodb,Python,Json,Mongodb,我不熟悉MongoDB和JSON格式。我在MongoDB集合中使用了以下JSON格式。我想从每个内部对象中获取值2、值4和值time,并将它们导出到CSV。此外,每个文档的内部对象数量可以从1到4个不等。在python中如何实现这一点 [{"object":[ {"value1":number, "value2"":number, "value3"":number, "value4"":"code", "value5"":number,

我不熟悉MongoDB和JSON格式。我在MongoDB集合中使用了以下JSON格式。我想从每个内部对象中获取值2、值4和值time,并将它们导出到CSV。此外,每个文档的内部对象数量可以从1到4个不等。在python中如何实现这一点

[{"object":[
    {"value1":number,
     "value2"":number,
     "value3"":number,
     "value4"":"code",
     "value5"":number,
     "value6"":"name"}
     ,
     {"value1":number,
      "value2":number,
      "value3":number,
      "value4":"code",
      "value5":number,
      "value6":"name"}]
     ,
 "time":1550666169274}]"""

欢迎来到堆栈溢出

您的格式在语法上不正确。你还应该(根据规则)提供一个你迄今为止尝试过的例子。你是新来的,所以你得到了通行证,但请记住这一点,以备将来使用=)

不太清楚你在问什么。这似乎是两个问题——1。如何访问和捕获数据结构中的数据,2。如何将捕获的数据写入csv

回答第一部分(访问和捕获数据): 你有清单和字典。要访问列表中的值,请使用后面的值的索引号(从0开始作为第一个索引号)

例如,如果我有列表
l=['zero'、'one'、'two']
我可以通过
l[1]
访问字符串“one”,其中1是列表
l
中“one”的索引号

要访问字典中的内容,可以使用它的键。 例如,
d={'key':'value'}
使用
d['key']
获取其对应的值-
值'

因此,假设您的数据实际上如下所示:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
你所拥有的是一份包含字典的清单;“object”键的值是列表,包含字典,“time”键的值是字符串

因此,您可以通过以下方式访问数据:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
或者,您可以像这样迭代对象列表(如果列表中有多个对象,则很有用):

my_json[0]
是一个字典-因此您可以访问它的值(字典列表),如下所示:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
这是一个列表,所以再次使用索引:

my_json[0]['object'][0] # or iterate through the list of objects as above
>>> {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}
给你一本字典,所以使用它的关键:

my_json[0]['object'][0]['value2']
>>> 1
等等

由于“每个文档的内部对象数量可以从1到4个不等”,因此您确实希望遍历“对象”包含的字典列表。您可以这样做:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
假设您有两个文档(在顶层),所有的文档都是这样的:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
现在,您可以像这样迭代此列表和元组:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
…等等

对于第二部分,写入csv,这取决于您希望如何格式化它。我建议您看看python的内置语言


希望对您有所帮助

欢迎来到Stack Overflow

您的格式在语法上不正确。你还应该(根据规则)提供一个你迄今为止尝试过的例子。你是新来的,所以你得到了通行证,但请记住这一点,以备将来使用=)

不太清楚你在问什么。这似乎是两个问题——1。如何访问和捕获数据结构中的数据,2。如何将捕获的数据写入csv

回答第一部分(访问和捕获数据): 你有清单和字典。要访问列表中的值,请使用后面的值的索引号(从0开始作为第一个索引号)

例如,如果我有列表
l=['zero'、'one'、'two']
我可以通过
l[1]
访问字符串“one”,其中1是列表
l
中“one”的索引号

要访问字典中的内容,可以使用它的键。 例如,
d={'key':'value'}
使用
d['key']
获取其对应的值-
值'

因此,假设您的数据实际上如下所示:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
你所拥有的是一份包含字典的清单;“object”键的值是列表,包含字典,“time”键的值是字符串

因此,您可以通过以下方式访问数据:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
或者,您可以像这样迭代对象列表(如果列表中有多个对象,则很有用):

my_json[0]
是一个字典-因此您可以访问它的值(字典列表),如下所示:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
这是一个列表,所以再次使用索引:

my_json[0]['object'][0] # or iterate through the list of objects as above
>>> {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}
给你一本字典,所以使用它的关键:

my_json[0]['object'][0]['value2']
>>> 1
等等

由于“每个文档的内部对象数量可以从1到4个不等”,因此您确实希望遍历“对象”包含的字典列表。您可以这样做:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
假设您有两个文档(在顶层),所有的文档都是这样的:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
现在,您可以像这样迭代此列表和元组:

my_json = [
  {
    "object":[
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      },
      {
        "value1":1,
        "value2":1,
        "value3":1,
        "value4":"code",
        "value5":1,
        "value6":"name"
      }
    ],
    "time":1550666169274
  }
]
my_json[0]
>>> {'object': [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}], 'time': 1550666169274}
my_json[0]['object']
>>> [{'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}, {'value1': 1, 'value2': 1, 'value3': 1, 'value4': 'code', 'value5': 1, 'value6': 'name'}]

my_json[0]['time']
>>> 1550666169274
all_docs = [] # create an empty list to hold further captured data

for obj in range(len(my_json)): # for each 'thing' in this list
  obj_time = my_json[obj]['time'] # grab the time
  values_sought = [] # create an empty list to hold further captured data

  for dictionary in my_json[obj]['object']: # for each 'thing' in the 'object''s list
    val_2 = dictionary['value2'] # grab the necessary values
    val_4 = dictionary['value4']
    values_sought.append((val_2, val_4)) # append them to the empty list above

  print(obj_time, values_sought)
  >>> 1550666169274 [(1, 'code'), (1, 'code')]

  all_docs.append((obj_time, values_sought)) # append each document's data to the all_docs list

print(all_docs)
>>> [(1550666169274, [(1, 'code'), (1, 'code')])]
[(1550666169274, [(1, 'code'), (1, 'code')])
 (1550666169275, [(1, 'code'), (1, 'code')]),]
document_1 = all_docs[0]
document_1_data_all = all_docs[1]
document_1_data_1 = all_docs[1][0] # (or iterate)

document_2 = all_docs[1]
…等等

对于第二部分,写入csv,这取决于您希望如何格式化它。我建议您看看python的内置语言


希望这对您有所帮助

您想要的“csv输出”是什么?你看过DFS或BFS算法吗?你想要什么“csv输出”?您看过DFS或BFS算法吗?非常感谢。我是按照你的详细回答做的,非常感谢。我是用你详细的回答做的。