The logic error seems to be that you have the second for loop where you only want to destructure the splitted line into a tuple. Now writing that decomposition as a for loop over a one-element list (as in the corrected code) works, but seems "hmhm".
In other words, the misunderstanding here is that you want a chain of generators, not a "nested for loop"-generator.<p>A more proper solution could be to chain the generator expressions:
with<p><pre><code> lines = ["a,b", "c,d"]
</code></pre>
you could do<p><pre><code> ((a,b) for a, b in (l.split(',') for l in lines))</code></pre>