How to dynamically generate NBT path names?

For example if I wanted store this info (it would be generated throughout the gameplay):

{
Sell: {
  session1: {name:Equinox, gametime:311119, diamonds_sold: 26, money_earned: 260},
  session2: {name:Steve, gametime:400000, diamonds_sold: 1, money_earned: 10},
  ...
  }
}

When Steve sells 1 diamond, this info would be stored into a session, and his name along with some other data would be stored. I'm not sure how to store the players name dynamically. I also need to store scoreboard values. The session names need to be named differently also every time (session1, session2, ...)

Continue to help post