将列表解包到有效负载
unwrap list to payload
我想解包负载中的列表项。以下是我想出的解决方案,但我不确定这是最好的方法,而且我很确定这绝对可以改进:
import ast
texts = ["text1",
"text2",
"text3"]
attachments = []
for i, text in enumerate(texts):
attachment = ''.join(str({
"text": "some text",
"action": [
{
"text": text,
"value": str(i+1)
}
]}))
attachments.append(attachment)
payload = [ast.literal_eval(attachments[i]) for i in range(len(attachments))]
预期结果:
[{'text': 'some text', 'action': [{'text': 'text1', 'value': '1'}]}, {'text': 'some text', 'action': [{'text': 'text2', 'value': '2'}]}, {'text': 'some text', 'action': [{'text': 'text3', 'value': '3'}]}]
您可以使用列表理解:
texts = [
'text1',
'text2',
'text3',
]
payload = [
{
'text': 'some text',
'action': [
{
'text': text,
'value': str(i+1),
}
]
}
for i, text
in enumerate(texts)
]
print(payload)
输出
[{'text': 'some text', 'action': [{'text': 'text1', 'value': '1'}]}, {'text': 'some text', 'action': [{'text': 'text2', 'value': '2'}]}, {'text': 'some text', 'action': [{'text': 'text3', 'value': '3'}]}]
我想解包负载中的列表项。以下是我想出的解决方案,但我不确定这是最好的方法,而且我很确定这绝对可以改进:
import ast
texts = ["text1",
"text2",
"text3"]
attachments = []
for i, text in enumerate(texts):
attachment = ''.join(str({
"text": "some text",
"action": [
{
"text": text,
"value": str(i+1)
}
]}))
attachments.append(attachment)
payload = [ast.literal_eval(attachments[i]) for i in range(len(attachments))]
预期结果:
[{'text': 'some text', 'action': [{'text': 'text1', 'value': '1'}]}, {'text': 'some text', 'action': [{'text': 'text2', 'value': '2'}]}, {'text': 'some text', 'action': [{'text': 'text3', 'value': '3'}]}]
您可以使用列表理解:
texts = [
'text1',
'text2',
'text3',
]
payload = [
{
'text': 'some text',
'action': [
{
'text': text,
'value': str(i+1),
}
]
}
for i, text
in enumerate(texts)
]
print(payload)
输出
[{'text': 'some text', 'action': [{'text': 'text1', 'value': '1'}]}, {'text': 'some text', 'action': [{'text': 'text2', 'value': '2'}]}, {'text': 'some text', 'action': [{'text': 'text3', 'value': '3'}]}]