我有一个名为users的Object数组。 此数组中的对象格式如下所示:
var userExample = {pub:{name:'John', id:'100'}, priv:{location:'NYC', phone:'000000'}};
作为一项宁静的服务,客户可以请求所有用户的信息。 显然我只想向他们发送公开信息。 所以我想通过键选择性地序列化我的数据(将忽略priv键)
这是我的代码段:
var users = [];
function censor(key, value) {
if (key == priv) {
return undefined;
}
return value;
}
app.get('/listUsers', function(req, res){
res.end(JSON.stringify(users, censor));
});
运行这些代码时,发生错误:
ReferenceError:未定义priv
我是Javascript初学者,请帮助。
答案 0 :(得分:1)
将priv
更改为"priv"
。
但你的做法很危险。在类似的条件下,我通常会创建一个要导出的新对象,并且我明确地复制了应该导出的属性,这样就不存在未来数据结构更改泄露的风险。白名单总是比黑名单更具前瞻性。
答案 1 :(得分:0)
较新版本的JSON.stringify()具有replacer array
例如
```
JSON.stringify(foo, ['week', 'month']);
// '{"week":45,"month":7}', only keep "week" and "month" properties
```
答案 2 :(得分:0)
尝试:
import pandas as pd
from pandas import ExcelWriter
import requests,re,csv
from bs4 import BeautifulSoup
for i in range(1,5): # Number of pages plus one
url = "https://www.magicbricks.com/property-for-sale/residential-
real-estate?bedroom=1,2,3,4,5,%3E5&proptype=Multistorey-
Apartment,Builder-Floor-Apartment,Penthouse,Studio-
Apartment,Residential-House,Villa,Residential-
Plot&cityName=Mumbai".format(i);
r = requests.get(url)
soup = BeautifulSoup(r.content)
这应该有效。