0

正在尝试更新条目列表。我能够更新 entry.name 字段。但是,不完全确定如何处理列表部分。

目前我可以获得当前的项目列表,但是当我附加一个新项目并设置 entry.list = new_list 时,什么也没有发生。

    prev_products = entry.products
    print(prev_products)

    new_products = prev_products.append(
                                {
                                    "sys": {
                                        "type": "Link",
                                        "linkType": "Entry",
                                        "id": '1HYANUnDBW7tyMA6jMlknH'
                                        }
                                }
                            )

    print(new_products)

new_products 结果是无。

4

1 回答 1

0

您应该能够使用prev_products.append()而不必引用另一个对象 -list.append()dict["newKey"] = "newValue"就地修改对象。像这样:

prev_products.append(
                                {
                                    "sys": {
                                        "type": "Link",
                                        "linkType": "Entry",
                                        "id": '1HYANUnDBW7tyMA6jMlknH'
                                        }
                                }
                            )

您是存储列表还是字典?由于您没有收到错误,我假设 prev_products 返回一个列表。如果您只对新产品感兴趣,可以通过替换print(new_products)print(prev_products[-1]). 如果您完全对新列表感兴趣,那么就print(prev_products)在添加新元素之后。

像上面存储在列表中的键值对在技术上是有效的,但我个人不想明确地构建这样的字符串列表。假设它entry.products与您附加的结构相同:

    prev_products = entry.products
    print(prev_products)

    product_dict=json.loads(prev_products)  # this puts the list of strings in to key:value form

    product_dict["newKey"] = dict() # this adds the new key to 
                                    # your dictionary at the root level so you can add more elements

    product_dict["newKey"]["sys"] = dict()
    product_dict["newKey"]["sys"]["type"]="Link" 
    product_dict["newKey"]["sys"]["linkType"]="Entry"
    product_dict["newKey"]["sys"]["id"]='1HYANUnDBW7tyMA6jMlknH'
    print(new_products)
于 2019-09-30T18:23:36.147 回答