{categoryCode : "" categoryDescribe : "1234" categoryName : "2314" categoryStatus : "Y" otherSysCode : "" prodCount : "" sortNum : "1234" spuCount : ""},过滤掉这个对象里面为""的属性
时间: 2023-07-06 19:40:56 浏览: 43
可以使用 JavaScript 中的 for...in 循环和 delete 关键字来删除对象中值为空字符串的属性。具体的实现如下:
```
const obj = {categoryCode: "", categoryDescribe: "1234", categoryName: "2314", categoryStatus: "Y", otherSysCode: "", prodCount: "", sortNum: "1234", spuCount: ""};
for (let key in obj) {
if (obj[key] === "") {
delete obj[key];
}
}
console.log(obj);
```
运行以上代码会输出一个过滤后的对象,其中值为空字符串的属性已经被删除:
```
{
categoryDescribe: "1234",
categoryName: "2314",
categoryStatus: "Y",
sortNum: "1234"
}
```
相关问题
敏感词信息有哪些?为什么page_url 是有内容的,但 def start_requests(self): yield scrapy.Request( url=self.page_url, method='POST', headers=self.headers, body=json.dumps({ "categoryCode": "ZcyAnnouncement11", "keyword": '', "pageNo": "1", "pageSize": "15", "procurementMethodCode": "1", "publishDateBegin": self.start_date, "publishDateEnd": self.end_date }), callback=self.parse, ) print(vars(start_requests))输出就没有内容,这是什么原因造成的
`start_requests` 是一个生成器函数,它使用 `yield` 语句返回一个 `scrapy.Request` 对象。当你调用 `print(vars(start_requests))` 时,实际上是打印了 `start_requests` 这个生成器函数的内部状态,而不是返回的 `scrapy.Request` 对象的内容。
要获取 `scrapy.Request` 对象的内容,你可以在 `parse` 方法中打印或处理。在 `parse` 方法中,你可以通过 `response` 对象获取请求的响应内容,例如使用 `response.text` 来获取响应的文本内容。
示例代码如下:
```python
def parse(self, response):
print(response.text) # 打印响应内容
# 其他处理逻辑
```
这样就可以获取到请求的响应内容。请确保在适当的地方调用了 `parse` 方法,并处理了请求的响应。
创建一个触发器, 当商品表中插入一行数据时,触发器对 数据的正确性进行验证。数据验证规则如下: 1)商品名称、规格型号和计量单位不能为空,商品名称不超过100 字符且不能包含@#$这三个字符; 2)商品单价为大于0 的数值型数据; 3)商品大类编码是Categories表中合法 存在; 4)商品小类编码是CategoryTree表中合法存在的,5)供应商编码是Suppliers表中合法存在的。
好的,根据您的要求,我可以帮您编写以下SQL Server的触发器代码:
```
CREATE TRIGGER trg_validate_product
ON Products
AFTER INSERT
AS
BEGIN
-- Check if the product name, specifications and measure unit are not empty and the name does not contain @#$ characters
IF EXISTS (SELECT * FROM inserted WHERE ISNULL(Name,'')='' OR ISNULL(Specifications,'')='' OR ISNULL(MeasureUnit,'')='' OR CHARINDEX('@',Name)>0 OR CHARINDEX('#',Name)>0 OR CHARINDEX('$',Name)>0 OR LEN(Name)>100)
BEGIN
RAISERROR('Product name, specifications and measure unit cannot be empty and the name cannot contain @#$ characters and should not exceed 100 characters.',16,1)
ROLLBACK TRANSACTION
RETURN
END
-- Check if the product price is greater than 0
IF EXISTS (SELECT * FROM inserted WHERE ISNULL(Price,0)<=0)
BEGIN
RAISERROR('Product price should be greater than 0.',16,1)
ROLLBACK TRANSACTION
RETURN
END
-- Check if the product category code exists in Categories table
IF EXISTS (SELECT * FROM inserted i LEFT JOIN Categories c ON i.CategoryCode=c.CategoryCode WHERE c.CategoryCode IS NULL)
BEGIN
RAISERROR('Product category code is not valid.',16,1)
ROLLBACK TRANSACTION
RETURN
END
-- Check if the product subcategory code exists in CategoryTree table
IF EXISTS (SELECT * FROM inserted i LEFT JOIN CategoryTree ct ON i.SubCategoryCode=ct.SubCategoryCode WHERE ct.SubCategoryCode IS NULL)
BEGIN
RAISERROR('Product subcategory code is not valid.',16,1)
ROLLBACK TRANSACTION
RETURN
END
-- Check if the supplier code exists in Suppliers table
IF EXISTS (SELECT * FROM inserted i LEFT JOIN Suppliers s ON i.SupplierCode=s.SupplierCode WHERE s.SupplierCode IS NULL)
BEGIN
RAISERROR('Supplier code is not valid.',16,1)
ROLLBACK TRANSACTION
RETURN
END
END
```
这个触发器会对插入到Products表中的数据进行验证,如果数据不符合规则,则会抛出错误并回滚事务,确保数据的正确性。