我有一个来自API请求的示例结果。我的目标是在此“路线”结果中添加更多数据,并在结果中添加其他“路线”结果。这将包括有关发送到API以生成此请求的内容的信息。
results =
[{u'routes': [{u'bounds': {u'northeast': {u'lat': value,
u'lng': value},
u'southwest': {u'lat': value,
u'lng': value}},
u'copyrights': u'value',
u'legs': [{u'distance': {u'text': u'value',
u'value': value},
u'duration': {u'text': u'value',
u'value': value},
u'duration_in_traffic': {u'text': u'value',
u'value': value},
u'end_address': u'value',
u'end_location': {u'lat': value,
u'lng': value},
u'start_address': u'value',
u'start_location': {u'lat': value,
u'lng': value},
u'steps': [{u'distance': {u'text': u'value',
u'value': value},
u'duration': {u'text': u'value',
u'value': value},
u'end_location': {u'lat': value,
u'lng': value},
u'html_instructions': u'value',
u'polyline': {u'points': u'value'},
u'start_location': {u'lat': value,
u'lng': 0.value},
u'travel_mode': u'value'},
{u'distance': {u'text': u'value',
u'value': value},
u'duration': {u'text': u'value',
u'value': value},
u'end_location': {u'lat': value,
u'lng': value},
u'html_instructions': u’value’,
u'maneuver': u’value’,
u'polyline': {u'points': u’value’},
u'start_location': {u'lat': value,
u'lng': value},
u'travel_mode': u’value’},
u'via_waypoint': []}],
u'overview_polyline': {u'points': u’value’},
u'summary': u’value’,
u'warnings': [],
u'waypoint_order': []}],
u'status': u'OK'}]
我知道API会返回JSON,但我已经通过Requests模块对它进行了解码,以便在Python中使用。
当我跑步时
print(type(results))
我得到了
<type 'list'>
我现在想要添加新信息。例如,
'label': value
然后我尝试使用extend函数添加这些新值。
我试过了
results.extend(["label":2,"label_2":3])
但我收到以下错误
results.extend(["label":2,"label_2":3])
^
SyntaxError: invalid syntax
我怎样才能将值添加/添加/扩展到此响应?
我想要实现的目标
results =
[{u'routes': [{u'bounds': {u'northeast': {u'lat': value,
u'lng': value},
u'southwest': {u'lat': value,
u'lng': value}},
u'copyrights': u'value',
u'legs': [{u'distance': {u'text': u'value',
u'value': value},
u'duration': {u'text': u'value',
u'value': value},
u'duration_in_traffic': {u'text': u'value',
u'value': value},
u'end_address': u'value',
u'end_location': {u'lat': value,
u'lng': value},
u'start_address': u'value',
u'start_location': {u'lat': value,
u'lng': value},
u'steps': [{u'distance': {u'text': u'value',
u'value': value},
u'duration': {u'text': u'value',
u'value': value},
u'end_location': {u'lat': value,
u'lng': value},
u'html_instructions': u'value',
u'polyline': {u'points': u'value'},
u'start_location': {u'lat': value,
u'lng': 0.value},
u'travel_mode': u'value'},
{u'distance': {u'text': u'value',
u'value': value},
u'duration': {u'text': u'value',
u'value': value},
u'end_location': {u'lat': value,
u'lng': value},
u'html_instructions': u’value’,
u'maneuver': u’value’,
u'polyline': {u'points': u’value’},
u'start_location': {u'lat': value,
u'lng': value},
u'travel_mode': u’value’},
u'via_waypoint': []}],
u'overview_polyline': {u'points': u’value’},
u'summary': u’value’,
u'warnings': [],
u'waypoint_order': []}],
u'status': u'OK'}
u'label': u'value'}]
更新 - 进一步的问题 - 我在'结果'中有多个'路线'。我批量发送这些请求,因此我想添加为该特定请求发送的相关信息,然后附加此信息。
@martineau非常友好地帮助了我并编了他的编辑。但是,我遇到的问题是将我要关联的列表中的第一个值与其各自的结果相关联。假设我有四个结果,我想将这4个'origincoords'附加到4个不同的JSON响应中。
哪里
origincoords = ['51.41833327,0.115963078', '51.34666046,-0.210947524', '51.39574919,-0.045778021', '51.4178257,0.010449216']
第一组坐标应该与第一个JSON结果('routes')相关联,依此类推。
我尝试过使用zip函数,创建一个名为output
的新列表output = (zip(results, origincoords))
当我打印输出时,我得到正确附加在结果末尾的值 -
u'summary': u'A20',
u'warnings': [],
u'waypoint_order': []}],
u'status': u'OK'},
'51.41833327,0.115963078'),
如何为此值添加标签?例如,我想看看
u'summary': u'A20',
u'warnings': [],
u'waypoint_order': []}],
u'status': u'OK'},
u'origincoord' : '51.41833327,0.115963078'),
答案 0 :(得分:1)
您可以向响应中添加信息,这是一个包含一个字典的列表,其中包含一个列表下的列表&#39; routes&#39;这是一个包含一个字典的列表 - 这是您要通过向其添加更多键/值对来修改的列表。这可以通过以下几种方式完成:
results[0]['routes'][0]['label'] = 2
results[0]['routes'][0]['label_2'] = 3
或
results[0]['routes'][0].update({'label': 2, 'label_2': 3})
或
results[0]['routes'][0].update([('label', 2), ('label_2', 3)])
无论如何,你最终得到的结果如下:
results = [{'routes': [{'bounds': {'northeast': {'lat': 'value',
'lng': 'value'},
'status': 'OK',
'label': 2,
'label_2': 3
. . .
}
]
}
]