Frank Lampard was hoping both would be in contention for the game on Sunday after suffering hamstring injuries.
Ziyech has been out since the start of December after pulling up in the win against Leeds.
He was expected to be back for Christmas, but his recovery has been delayed.
However, Ziyech is now back in training and Lampard must decide whether the Moroccan is able to start against City.
Lampard revealed James had also picked up a hamstring strain in the Boxing Day defeat to Arsenal – although he was due to be rested against Aston Villa 48 hours later.
“I had some ideas to make changes anyway because we have a squad of people who are ready to play,” said the Chelsea manager after the 1-1 draw with Villa.
“I can’t complain about the two-day turnaround, which I did, and not use the squad to a degree.
“Reece James has got a small hamstring issue and I am not saying that’s why Azpi (Cesar Azpilicueta) played because I probably would have played him anyway.”
Chelsea predicted XI (4-3-3): Mendy; Azpilicueta, Zouma, Thiago, Chilwell; Kante, Jorginho, Mount; Hudson-Odoi, Abraham, Pulisic
This weekend get a £10 free bet with Betfair, when you bet £10 on a Same Game Multi on the Premier League.
Terms: Min £10 Same Game Multi bet on any EPL match this Fri – Sun. Free bet valid for 72 hours, awarded at bet settlement. Excludes cashed out bets. T&Cs apply.