首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据追加到json文件中的列表

将数据追加到json文件中的列表
EN

Stack Overflow用户
提问于 2019-03-10 23:36:33
回答 1查看 546关注 0票数 1

我正在做一些东西来监控网站的新产品,所以我试图将所有的标题添加到一个json文件中,该文件以{"product_titles": []}开头,我试图弄清楚如何将包含产品标题和大小的字典添加到空列表中这是我的代码

代码语言:javascript
运行
复制
import requests
import json

url = 'https://www.supremenewyork.com/mobile_stock.json'
headers = {
    'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1',
    'Accept': 'application/json',
    'Accept-Encoding': 'br, gzip, deflate',
    'Accept-Language': 'en-us'
}


req = requests.get(url, headers=headers)#

page = req.json()
categories = page['products_and_categories']
Sweatshirts = categories['Sweatshirts']


product_list = []
for sweater in Sweatshirts:
    product_name = sweater['name']
    product_colors = []
    product_sizes = []
    product_stock_levels = []
    #print(product_name)
    raw_product_info = requests.get('https://www.supremenewyork.com/shop/' + str(sweater['id']) + '.json', headers=headers)
    product_info = raw_product_info.json()
    styles = product_info['styles']
    for style in styles:
        colors = style['name']
        full_product_name = product_name + colors
        file = open
        product_colors.append(colors)
        for size in style['sizes']:
            sizes = {size['name'] : size['stock_level']}
            product_sizes.append(sizes)
            with open('supreme.json', 'r+') as supremef:
                data = json.load(supremef)
                dump = json.dump(data['product_titles'].append({full_product_name: sizes}), supremef)

最后几行代码,我试图将其添加到json文件的列表中,但没有将其添加到其中

EN

回答 1

Stack Overflow用户

发布于 2019-03-11 01:08:33

正如@t.m.adam在评论中指出的--这里有一点解释。

您期望append-operation返回整个对象,然后json.dump将保存该对象。

这个例子说明这是不起作用的,因为append返回None

代码语言:javascript
运行
复制
>>> mydict = {"items": [1,2,3,4]}
>>> type(mydict["items"].append(5))
<class 'NoneType'>
>>> print(mydict)
{'items': [1, 2, 3, 4, 5]}
>>> 

有关此行为的讨论,请参阅this question,我在Python文档中找不到与此相关的条目。

您的代码可能如下所示:

代码语言:javascript
运行
复制
data = json.load(supremef)
data['product_titles'].append({full_product_name: sizes})
dump = json.dump(data, supremef)

稍微偏离主题:

您的file = open可能不会执行您所期望的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55089334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档