问题描述
的jSON
"ent": [
{
"employee": [
{
"emp_name": "","column": "employee","emp_id": 123456,"first name": "Joe","last name": "Bloggs","email": "","ldapid":
},{
"emp_name": "","first name": "Foo","last name": "Bars","ldapid":
}
]
}
]
我需要根据名字和姓氏填写电子邮件,ldapid和emp_name
所需的输出是
"ent": [
{
"employee": [
{
"emp_name": "Joe Bloggs","email": "jbloggs@mycompemail.com","ldapid": "jbloggs"
},{
"emp_name": "Foo Bars","emp_id": 567891,"email": "fbars@mycompemail.com","ldapid": "fbars"
}
]
}
]
由于我是nodeJS领域的超级新手,所以我正在采取一些初步步骤来达到自己想要的位置。
以下是我的工作。
编辑了我的帖子
大家好,谢谢您的答复。 我希望得到的答案与以下内容类似。这可能不是具有最佳实践的代码,但是我想做的可能是该小组中的专家可以使它变得更好。
const fs = require('fs');
/** Method to start
*
*
*/
const main = async () => {
const myJSONObject = require('./people.json');
try {
for (var i = 0; i < myJSONObject.entities.length; i++) {
var entity = myJSONObject.entities[i];
if (entity.People) {
for (var j = 0; j < entity.People.length; j++) {
var people = entity.People[j];
var fn = people["first name"];
var ln = people["last name"];
var email = `${fn.substring(0,3)}${ln.substring(0,5)}@mycompmail.com`;
var ldapid = `${fn.substring(0,5)}`;
myJSONObject.entities[i].People[j]["email"] = email.toLowerCase();
myJSONObject.entities[i].People[j]["ldap id"] = ldapid.toLowerCase();
myJSONObject.entities[i].People[j]["preferred first name"] = fn;
myJSONObject.entities[i].People[j]["preferred last name"] = ln;
// console.log(`${fn}.${ln}`)
}
}
}
fs.writeFileSync('./new_people.json',JSON.stringify(myJSONObject,4));
}
catch (error) {
console.log(error);
}
};
(async () => {
await main();
})();
在此方面的任何帮助都将受到高度赞赏。 瓦基恰克
解决方法
根据您的代码片段,我认为JSON是文件中的字符串。
因此,您需要做的第一步是将文件内容导入到变量中。您可以使用fs.readFileSync()
来做到这一点。现在,您将字符串包含在变量中。
接下来,您需要将字符串转换为对象。您可以使用JSON.parse()
来做到这一点。现在,您有了可以操作的对象。
要将对象写回到文件中,可以使用def format_row(r):
formats = r['format'].split(';')
return ['background-color: yellow' if y=='y' else '' for y in formats] + ['']
df.style.apply(format_row,axis=1)
再次使其成为字符串,然后使用JSON.stringify()
将其写到文件中。
完整脚本:
fs.writeFileSync()
注意:还有用于写入和读取文件的异步功能。如果您在脚本的开头加载配置或类似内容,则同步功能就可以了。如果在运行时读取/写入许多文件,则应使用异步功能。