首页 > 解决方案 > 如何循环将项目添加到列表中?

问题描述

如何循环将项目添加到“列表”?

url = 'https://api.com/api/v1/products?app_id=web02'

response = requests.get(url).json()

items = response['data']
iter1 = []
for item in items:
   iter1.append({
     'name': item.get('name', 'NA'),
     'owner': item.get('owner', 'NA'),
     'date_published': item.get('date_published', 'NA'),
     'images': item.get('images', 'NA'),
     'short_url': item.get('short_url', 'NA')
   })

list = []
for list in iter1:
    result = {}
    result["name"] = iter1[0]["name"]
    result["user"] = iter1[1]["owner"]["name"]
    result["date_published"] = datetime.utcfromtimestamp(iter1[0]["date_published"]).strftime('%Y-%m-%d %H:%M:%S')
    result["url"] = []
    result["short_url"] = iter1[0]["short_url"]

    for img in iter1[0]["images"]:
        result["url"].append(img["url"])
print(json.dumps(result, indent=4, ensure_ascii=False))

现在我总是在“结果”变量中只有一个处理过的较早块。

标签: python

解决方案


我认为你的代码是错误的。

list = []
for list in iter1:

然后你用 isiter1代替list

result = {}
result["name"] = iter1[0]["name"]

尽量不要使用list,因为它是一个保留输入的list

Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:00:30)
[Clang 11.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> list
<class 'list'>
>>> []
[]
>>> type([])
<class 'list'>
>>>

推荐阅读