这个问题是Python 2.7。
我在CSV文件中包含以下时间数据-格式为MM-dd-yyyy HH:mm:ss:ffffff。我想找到2个日期之间的差异。两个日期之间的时间差通常以毫秒为单位。
我试图使用以下API将str转换为datetime对象,
time_info = datetime.strptime(time_data_from_csv, '%m-%d-%Y %H:%M:%S')
我收到以下错误-
ValueError: time data '"12-31-2018 12:21:12.315948"' does not match format '%m-%d-%Y %H:%M:%S'
我也尝试过-'%m-%d-%Y %H:%M:%S.%f'
,但无济于事(不确定这是否是正确的用法)。这里,time_data_from_csv
是一个字符串变量。任何指针将不胜感激。
答案 0 :(得分:1)
根据错误消息,由于[
{
_id: "5ae57dba117af6dfc1e49c15",
BANK: "CITI BANK",
IFSC: "CITI0000005",
MICR: 411037001,
BRANCH: "PUNE",
ADDRESS: "2413, KUMAR CAPITAL, EAST STREET, PUNE 411 001",
CONTACT: 5606356,
CITY: "PUNE",
DISTRICT: "PUNE",
STATE: "MAHARASHTRA"
}
]
变量中包含双引号,因此应在格式字符串中包括双引号:
try {
let orCond = [];
let arrBranches = req.params.branch.split(" ");
arrBranches.map((branch) => {
orCond.push({ BRANCH: { $regex: '.*' + branch + '.*', $options: 'i' } });
});
console.log(orCond);
const banks = await Bank.find(
{
$and: [
{
BANK: { $regex: '.*' + req.params.bank + '.*', $options: 'i' }
},
{
$or: orCond
}
]
}
).lean().limit(1);
console.log(banks);
res.status(200).send(banks);
} catch (error) {
console.log('error', error);
}
答案 1 :(得分:0)
我找到了罪魁祸首。正如我所怀疑的那样,双引号造成了麻烦。 我通过在格式字符串中添加双引号来解决它。感谢您的关注和帮助!
datetime.strptime(time_data_from_csv, '"%m-%d-%Y %H:%M:%S.%f"')