input: from typing import Dict
  
  def create_blockchain(data_list: Dict[str, str]) -> str:
      """ Create a blockchain and add blocks based on the given data dictionary. Each key-value
      pair represents a block with the key being the timestamp and the value being the data.
      The function will return the entire blockchain in JSON format.
      >>> create_blockchain({'2021-01-01T00:00:00': 'Genesis Block', '2021-01-02T00:00:00': 'Block1 data'})
      '[{"index": 0, "timestamp": "2021-01-01T00:00:00", "data": "Genesis Block", "previous_hash": null, "hash": "..."}, {"index": 1, "timestamp": "2021-01-02T00:00:00", "data": "Block1 data", "previous_hash": "...", "hash": "..."}]'
      """
output:     import json
      from hashlib import sha256
  
      blockchain = []
      previous_hash = None
  
      for index, (timestamp, data) in enumerate(data_list.items()):
          block = {
              "index": index,
              "timestamp": timestamp,
              "data": data,
              "previous_hash": previous_hash
          }
          block_string = json.dumps(block, sort_keys=True).encode()
          block_hash = sha256(block_string).hexdigest()
          block["hash"] = block_hash
          blockchain.append(block)
          previous_hash = block_hash
  
      return json.dumps(blockchain)