如何为 json.dump() 添加唯一 ID

时间:2021-06-03 08:31:07

标签: python json

我有这个代码:

data = []
with open('PRODUCTS.json', 'w', encoding='utf-8') as file_object:
    for link in links:
        
        browser.get(link)

        name = browser.find_element_by_xpath("/html/body/div[7]/div/div[3]/div[1]/div/div/div/div[1]/div[2]/h1").text
        
        try:
            in_stock = browser.find_element_by_xpath("//*[@id='siteContainer']/div[7]/div/div[3]/div[1]/div/div/div/div[2]/div[2]/div[7]/div[2]/div/div[1]/div/div[1]/div/b").text
        except NoSuchElementException:
            in_stock = 'STOCK UNKOWN'

        try:
            price = browser.find_element_by_class_name("site-currency-attention").text
        except NoSuchElementException:
            price = 'PRICE UNKOWN'


        data = {
            (uniqueId): {
                (name): 
                {
                        'link': (browser.current_url),
                        'in-stock': (in_stock),
                        'price': (price),
                        'last_updated': (d1)
                    }
            }
        }
        print("PRODUCT ADDED!")


        json.dump(data, file_object, indent=4)

我想为每个条目添加一个 ID。

现在它打印:

{
    "Product name": {
        "link": "link here",
        "in-stock": "12",
        "price": "9.400",
        "last_updated": "03/06/2021 - 10:27:16"
    }
}

如果可能的话,我也希望可以按产品名称对 JSON 文件进行分类。 产品名称里面有特殊的“型号”,例如:asdww 3008、asdww 3009、asdww 3010。 是否可以按名称对 JSON 文件进行排序?

1 个答案:

答案 0 :(得分:0)

标准库模块Universally Unique Identifiers中有uuid可用,例如:

>>> import uuid
>>> uuid.uuid4()
UUID('90b5e22d-30bb-4d7d-9133-e38661f5ba17')

剧透:你不会和我一样