Python 如何将urllib2.urlopen的结果传递给函数

Python 如何将urllib2.urlopen的结果传递给函数,python,Python,当我运行此命令时,我得到以下错误-TypeError:强制使用Unicode:needstring或buffer,NoneType-found 有人能告诉我如何将函数getURL()的结果传递给函数romid()吗 嗯……您是否考虑过在getURL函数中使用return语句?您将找不到类型,因为您在getURL()函数中没有返回任何内容,只是声明了变量f,不返回它您需要在getURL函数中返回f确定我添加了返回f,如代码中所示,但仍然得到错误。如果我将函数romid()中的“f=getURL()

当我运行此命令时,我得到以下错误-TypeError:强制使用Unicode:needstring或buffer,NoneType-found

有人能告诉我如何将函数getURL()的结果传递给函数romid()吗


嗯……您是否考虑过在
getURL
函数中使用
return
语句?

您将找不到类型,因为您在getURL()函数中没有返回任何内容,只是声明了变量f,不返回它

您需要在getURL函数中返回f确定我添加了返回f,如代码中所示,但仍然得到错误。如果我将函数romid()中的“f=getURL()”替换为“f=urllib2.urlopen(''.join(['http://','169.254.1.2','/details.xml'])”),则效果很好。我肯定错过了什么,但我想不出是什么。非常感谢您的建议。谢谢在urlopen函数成为
.join(['http://','169.254.1.2','/details.xml'])之前,您传递给它的是什么?
抱歉,我不太确定是否理解您的问题。如果我删除getURL()函数并将行“f=urllib2.urlopen(''.join(['http://','169.254.1.2','/details.xml'])”移动到romid()函数,我就不会得到错误。很抱歉回来这么晚;我很难找到解决方案,因为主机显然已关闭
URLError:
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import serial, time, os, decimal, csv, urllib2, socket
import xml.etree.cElementTree as ET
from xml.etree.cElementTree import parse

romidList = []
    id = '{http://www.embeddeddatasystems.com/schema/owserver}ROMId'
    owd= '{http://www.embeddeddatasystems.com/schema/owserver}owd_DS18B20'

def getURL():
    f = urllib2.urlopen(''.join(['http://', '169.254.1.2', '/details.xml']))
    #add the next line
    return f

def romid():
    f = getURL()
    for x in parse(f).findall(owd):

        romID = x.find(id) 
        romID = romID.text

        if romID not in romidList:

            romidList.append(romID)

        print romidList

romid()