Question: I'm trying to test for a specific item in an item frame and I'm sure I have the correct code. 

```
/testfor @e[type=Item_Frame,x=-1285,y=72,z=788}] {Item:{id:minecraft:leather}}

```

However I get this error:

```
[02:46:44] Data tag parsing failed: Expected '}' but got ':' at: {Item:{id:minecraft:<--[HERE]

```

This is a fairly simple code. I follow the 'mold' everyone else is using for this specific testfor command, but I get an error. There may be a different way to write it 1.12? 

Thanks in advance for the help!

Answer: 
You had an obsolete `}` in the target selector. But probably you didn't have that in the game, because then your error message would have been different.

Your real issue: Since 1.9 you need quotes around the item ID:

```
/testfor @e[type=Item_Frame,x=-1285,y=72,z=788] {Item:{id:"minecraft:leather"}}

```

1.13 syntax:

```
/execute if entity @e[type=item_frame,x=-1285,y=72,z=788,nbt={Item:{id:"minecraft:leather"}} run <command>

```

You can also leave out `run` and the command if you just want a chat output.
That error is specifically pointing to the portion the error was flagged for.

Look at this portion:

```
{Item:{id:minecraft:leather}}

```

The portion after `id:` should be in quotes, so: `{Item:{id:"minecraft:leather"}}`. Without quotes it is trying to parse the `:` after `minecraft` as code. 

So the error is telling you, it `Expected '}' but got ':'`

---

Another problem I see with the command is in the target selector

```
@e[type=Item_Frame,x=-1285,y=72,z=788}] 

```

The last two characters, there is an unneeded `}` after `788`.

---

The command with both problems fixed is:

```
/testfor @e[type=Item_Frame,x=-1285,y=72,z=788] {Item:{id:"minecraft:leather"}}

```

I have tested it in a command block with a comparator output and it functions properly.