```json
{
  "sym_variables": [
    ("x0", "milligrams of zinc"),
    ("x1", "grams of fat"),
    ("x2", "milligrams of iron"),
    ("x3", "milligrams of vitamin K"),
    ("x4", "milligrams of vitamin B5")
  ],
  "objective_function": "6*x0 + 1*x1 + 5*x2 + 8*x3 + 8*x4",
  "constraints": [
    "0.67*x0 + 0.88*x3 >= 95",
    "0.35*x1 + 0.96*x2 >= 37",
    "0.67*x0 + 0.96*x2 >= 37",
    "0.67*x0 + 0.88*x3 + 0.97*x4 >= 83",
    "0.35*x1 + 0.96*x2 + 0.97*x4 >= 83",
    "0.67*x0 + 0.35*x1 + 0.96*x2 >= 83",
    "0.67*x0 + 0.88*x3 + 0.97*x4 >= 73",
    "0.35*x1 + 0.96*x2 + 0.97*x4 >= 73",
    "0.67*x0 + 0.35*x1 + 0.96*x2 >= 73",
    "0.67*x0 + 0.88*x3 + 0.97*x4 >= 71",
    "0.35*x1 + 0.96*x2 + 0.97*x4 >= 71",
    "0.67*x0 + 0.35*x1 + 0.96*x2 >= 71",
    "0.67*x0 + 0.35*x1 + 0.96*x2 + 0.88*x3 + 0.97*x4 >= 71",
    "0.34*x2 + 0.68*x3 >= 55",
    "0.09*x1 + 0.34*x2 >= 59",
    "0.44*x0 + 0.68*x3 >= 66",
    "0.44*x0 + 0.09*x1 >= 67",
    "0.68*x3 + 0.76*x4 >= 31",
    "0.44*x0 + 0.34*x2 >= 69",
    "0.44*x0 + 0.09*x1 + 0.34*x2 + 0.68*x3 + 0.76*x4 >= 69",
    "0.04*x3 + 0.51*x4 >= 66",
    "0.81*x1 + 0.12*x2 >= 55",
    "0.12*x2 + 0.51*x4 >= 74",
    "0.48*x0 + 0.12*x2 >= 35",
    "0.48*x0 + 0.04*x3 >= 67",
    "0.48*x0 + 0.81*x1 + 0.12*x2 >= 87",
    "0.48*x0 + 0.81*x1 + 0.51*x4 >= 87",
    "0.48*x0 + 0.04*x3 + 0.51*x4 >= 87",
    "0.48*x0 + 0.81*x1 + 0.12*x2 >= 44",
    "0.48*x0 + 0.81*x1 + 0.51*x4 >= 44",
    "0.48*x0 + 0.04*x3 + 0.51*x4 >= 44",
    "0.48*x0 + 0.81*x1 + 0.12*x2 >= 44",
    "0.48*x0 + 0.81*x1 + 0.51*x4 >= 44",
    "0.48*x0 + 0.04*x3 + 0.51*x4 >= 44",
    "0.48*x0 + 0.81*x1 + 0.12*x2 + 0.04*x3 + 0.51*x4 >= 44",
    "0.13*x1 + 0.44*x4 >= 68",
    "0.94*x2 + 0.44*x4 >= 65",
    "0.61*x3 + 0.44*x4 >= 97",
    "0.13*x1 + 0.61*x3 >= 60",
    "0.43*x0 + 0.44*x4 >= 95",
    "0.13*x1 + 0.94*x2 >= 58",
    "0.43*x0 + 0.94*x2 >= 62",
    "0.43*x0 + 0.13*x1 + 0.94*x2 + 0.61*x3 + 0.44*x4 >= 62",
    "0.31*x2 + 0.11*x3 >= 40",
    "0.97*x0 + 0.11*x3 >= 52",
    "0.11*x3 + 0.82*x4 >= 103",
    "0.46*x1 + 0.82*x4 >= 79",
    "0.97*x0 + 0.31*x2 >= 103",
    "0.31*x2 + 0.82*x4 >= 65",
    "0.97*x0 + 0.46*x1 >= 95",
    "0.97*x0 + 0.82*x4 >= 103",
    "0.97*x0 + 0.31*x2 + 0.82*x4 >= 98",
    "0.31*x2 + 0.11*x3 + 0.82*x4 >= 98",
    "0.97*x0 + 0.31*x2 + 0.82*x4 >= 68",
    "0.31*x2 + 0.11*x3 + 0.82*x4 >= 68",
    "0.97*x0 + 0.46*x1 + 0.31*x2 + 0.11*x3 + 0.82*x4 >= 68",
    "-6*x0 + 1*x3 >= 0",
    "0.67*x0 + 0.96*x2 <= 459",
    "0.67*x0 + 0.88*x3 <= 133",
    "0.35*x1 + 0.97*x4 <= 450",
    "0.67*x0 + 0.35*x1 + 0.88*x3 <= 470",
    "0.67*x0 + 0.35*x1 + 0.96*x2 <= 129",
    "0.44*x0 + 0.68*x3 <= 123",
    "0.09*x1 + 0.34*x2 <= 329",
    "0.68*x3 + 0.76*x4 <= 219",
    "0.09*x1 + 0.34*x2 + 0.76*x4 <= 140",
    "0.44*x0 + 0.68*x3 + 0.76*x4 <= 240",
    "0.44*x0 + 0.34*x2 + 0.76*x4 <= 192",
    "0.48*x0 + 0.81*x1 <= 140",
    "0.81*x1 + 0.12*x2 + 0.04*x3 <= 298",
    "0.48*x0 + 0.04*x3 + 0.51*x4 <= 295",
    "0.43*x0 + 0.61*x3 <= 145",
    "0.13*x1 + 0.61*x3 <= 313",
    "0.61*x3 + 0.44*x4 <= 356",
    "0.13*x1 + 0.44*x4 <= 233",
    "0.43*x0 + 0.13*x1 <= 515",
    "0.94*x2 + 0.61*x3 <= 499",
    "0.43*x0 + 0.94*x2 <= 166",
    "0.11*x3 + 0.82*x4 <= 110",
    "0.31*x2 + 0.82*x4 <= 158",
    "0.97*x0 + 0.46*x1 <= 283",
    "0.46*x1 + 0.31*x2 <= 308",
    "0.46*x1 + 0.11*x3 <= 165",
    "0.97*x0 + 0.11*x3 + 0.82*x4 <= 286"
  ]
}
```

```python
import gurobipy as gp

try:
    # Create a new model
    m = gp.Model("optimization_problem")

    # Create variables
    x0 = m.addVar(vtype=gp.GRB.CONTINUOUS, name="x0")  # milligrams of zinc
    x1 = m.addVar(vtype=gp.GRB.INTEGER, name="x1")  # grams of fat
    x2 = m.addVar(vtype=gp.GRB.INTEGER, name="x2")  # milligrams of iron
    x3 = m.addVar(vtype=gp.GRB.INTEGER, name="x3")  # milligrams of vitamin K
    x4 = m.addVar(vtype=gp.GRB.INTEGER, name="x4")  # milligrams of vitamin B5


    # Set objective function
    m.setObjective(6*x0 + 1*x1 + 5*x2 + 8*x3 + 8*x4, gp.GRB.MINIMIZE)

    # Add constraints
    constraints = [
       
    ]
    
    for constraint in constraints_data['constraints']:
        m.addConstr(eval(constraint))


    # Optimize model
    m.optimize()

    # Print solution
    if m.status == gp.GRB.OPTIMAL:
        print('Obj: %g' % m.objVal)
        for v in m.getVars():
            print('%s %g' % (v.varName, v.x))
    elif m.status == gp.GRB.INFEASIBLE:
        print('Optimization problem is infeasible.')
    else:
        print('Optimization ended with status %d' % m.status)


except gp.GurobiError as e:
    print('Error code ' + str(e.errno) + ': ' + str(e))

except AttributeError:
    print('Encountered an attribute error')
```