-1

在 PHP 中,我执行以下操作:

<?php
   $array = array();
   for($i=0;$i<5;$i++)
   {
      $array[$i]["id"] = $i;
      $array[$i]["result"]["text"] = "id ".$i;
   }
   echo json_encode($array);

结果是:

[{"id":0,"result":{"text":"id 0"}},{"id":1,"result":{"text":"id 1"}},{"id":2,"result":{"text":"id 2"}},{"id":3,"result":{"text":"id 3"}},{"id":4,"result":{"text":"id 4"}}]

那么在python中我该怎么做呢?

更新

感谢您的帮助,我的问题已解决,当我在这里更新时,有 3 个答案,我发现所有 3 个答案都符合我的要求,我决定选择并这样做

array = []
for i in range(0,5):
    array.append({"id":i,"result":{"text":f"id {i}"}})
#dict to json
import json
print(json.dumps(array))

因为对我来说,我觉得它最简洁

4

3 回答 3

1
array = []
for i in range(0,5):
    array.append({"id":i,"result":{"text":f"id {i}"}})
print(array)

#to json
import json
print(json.dumps(array))

输出

[{'id': 0, 'result': {'text': 'id 0'}}, {'id': 1, 'result': {'text': 'id 1'}}, {'id': 2, 'result': {'text': 'id 2'}}, {'id': 3, 'result': {'text': 'id 3'}}, {'id': 4, 'result': {'text': 'id 4'}}]

[{"id": 0, "result": {"text": "id 0"}}, {"id": 1, "result": {"text": "id 1"}}, {"id": 2, "result": {"text": "id 2"}}, {"id": 3, "result": {"text": "id 3"}}, {"id": 4, "result": {"text": "id 4"}}]
于 2022-02-12T11:53:43.443 回答
0

像这样的东西对你有用吗?

lyst = []
for i in range(5):
    lyst += [{"id": i, "result":{"text": "id " + str(i)}}]
print(lyst)

输出:

[{'id': 0, 'result': {'text': 'id 0'}}, {'id': 1, 'result': {'text': 'id 1'}}, {'id': 2, 'result': {'text': 'id 2'}}, {'id': 3, 'result': {'text': 'id 3'}}, {'id': 4, 'result': {'text': 'id 4'}}]
于 2022-02-12T11:49:37.277 回答
0

有2种方式:

1)首先你可以:

枚举成一个range(5)数组,然后将i预定义数组的索引分配arr给 a dictionary,您将更改键

arr = list(range(5))
for i,x in enumerate(range(5)):
    arr[i] = {}
    arr[i]["id"],arr[i]["result"]=i,{"text":f"id {i}"}
print(arr)

输出:

[{'id': 0, 'result': {'text': 'id 0'}}, {'id': 1, 'result': {'text': 'id 1'}}, {'id': 2, 'result': {'text': 'id 2'}}, {'id': 3, 'result': {'text': 'id 3'}}, {'id': 4, 'result': {'text': 'id 4'}}]

2)其次你可以:

使用dictlist理解包装成一个表达式:

  1. 范围:

你可以使用range(5)raccomended

arr = [{"id":i,"result":{"text":f"id {i}"}} for i in range(5)]
print(arr)
  1. enumerate

你也可以enumerate改用(不推荐)

arr = [{"id":i,"result":{"text":f"id {i}"}} for i,_ in enumerate(range(5))]
print(arr)

输出将是相同的:

[{'id': 0, 'result': {'text': 'id 0'}}, {'id': 1, 'result': {'text': 'id 1'}}, {'id': 2, 'result': {'text': 'id 2'}}, {'id': 3, 'result': {'text': 'id 3'}}, {'id': 4, 'result': {'text': 'id 4'}}]
于 2022-02-12T11:50:11.297 回答