Simple Random TicTacToe Generator
Some suggestions:


There’s a lot of repetition in the code for generating each of the rows. Repetition is generally a bit of a code smell; you could improve this by using a list comprehension for each row, for example: 

row1 = [round(random.uniform(0, 1)) for _ in range(3)]
row2 = [round(random.uniform(0, 1)) for _ in range(3)]
row3 = [round(random.uniform(0, 1)) for _ in range(3)]


By nesting the list comprehension and using tuple unpacking, we can reduce repetition further: 

row1, row2, row3 = [
    [round(random.uniform(0, 1)) for _ in range(3)]
    for _ in range(3)
]



Your code uses 1.0 and 0.0 for the two values, whereas convention is usually to use O&nbsp;and X. If you use random.choice instead of random.uniform, you can get this instead:

row1, row2, row3 = [
    [random.choice(['O', 'X']) for _ in range(3)]
    for _ in range(3)
]


It’s good that the rest of your code copes with this gracefully – it doesn’t actually care what values you’re putting in the cells.

Once you’ve done that, you can tidy up the printing of the rows so you don't see the square brackets/commas from Python’s list syntax. 
There are lots of if statements with multiple conditions and repetition, which is a bit messy. It would be cleaner if you defined a function that checks if a group of values are all equal. Then you could write: 

if all_equal(row1[0], row2[0], row3[0]):
    print("All %s's in top row!" % row1[0])


That makes the conditions both shorter and easier to read. 
Your script says “All X's in diagonal”, regardless of which diagonal it actually is. That’s less clear than it could be, and means it could potentially print the same sentence twice. I’d recommend using different terms to describe each diagonal – perhaps primary and secondary diagonal?