Clean and tidy Python code for dictionary look up and API interactions
I have a few pointers, a lot of them coming from Python's offical style guide:


ALWAYS use with syntax when dealing with files:

with open('some_file.txt', 'r') as file:
    # Do stuff

# file will be closed by now
foo = 'Hello World!'


This syntax prevents any errant bugs like forgetting to close a file, which you do here:

bio_dict = eval(open('biodict.txt').read())

Use format to create strings with variables. This is the easiest way to create strings without having to use ugly string concatenation:

# This functions...
def data_object_url(line):
    return 'http://eol.org/api/data_objects/1.0/' + line.strip() + '.json'

# But this is better, more Pythonic
def data_object_url(line):
    return 'http://eol.org/api/data_objects/1.0/{}.json'.format(line.strip())

Different module imports should not go on the same line:

import urllib, json


They should have their own line. If you are importing submodules, then you can have multiple imports on the same line:

from my_module import some_func, other_func

Pay attention to function and variable names; make them descriptive. 

Function names should start with a verb and describe what they do: instead of data_object_url use something like get_object_url. 

Also, make variable names descriptive; erring on the side of being too wordy than not wordy enough: instead of for k, v in bio_dict.iteritems() use for key, value in bio_dict.iteritems().
When writing comments, only say what needs to be explained. Comments should not explain the obvious but instead should explain the complex or the reasons behind the code. A lot of the comments you have would actually be more fitting as docstrings.
Look into list comprehensions. In my code below I was able to take your for loop into a single statement. This also made writing to the output file much more Pythonic.




Here is what your code looks like with my suggestions implemented:

#!/usr/bin/env python
# coding: utf-8

import urllib
import json

with open('biodict.txt', 'r') as file:
    bio_dict = eval(file.read())

in_file_name = "text_object_id1.txt"
out_file_name = "all_uri.txt"

def get_object_url(line):
    return 'http://eol.org/api/data_objects/1.0/{}.json'.format(line)

out_file_text = []
with open(in_file_name, 'r') as file:
    for line in in_file:   
        line = line.strip()                                     
        results = urllib.urlopen(get_object_url(line)).read()
        data = json.loads(results)

        descriptions = data['dataObjects'][0]['description'].lower()   
        out_file_text += [','.join(line, key, bio_dict[key])
                             for key in bio_dict if key in descriptions]

with open(out_file_name, 'w') as file:
    file.write('\n'.join(out_file_text))