Python 将函数应用于嵌套列表时出现问题?

Python 将函数应用于嵌套列表时出现问题?,python,python-3.x,data-structures,python-requests,nested-lists,Python,Python 3.x,Data Structures,Python Requests,Nested Lists,我有以下清单: lis = ['hi how are you', 'pretty good', 'lore lipsum dolor done', 'done lipsum dolor', 'lipsum dolor done', 'lipsum lore done', 'greetings'] 以及以下函数,该函数使用请求库调用API: def my_req(text): payload = {'txt': text, 'param1': param1, 'param2'

我有以下清单:

lis = ['hi how are you', 'pretty good', 'lore lipsum dolor done', 'done lipsum dolor', 'lipsum dolor done', 'lipsum lore done', 'greetings']
以及以下函数,该函数使用请求库调用API:

def my_req(text):

    payload = {'txt': text, 'param1': param1, 
    'param2': param2, 'param3': param3, 'param4': param4}

    r = requests.get('http://api.exmaple.com', params=payload, stream = True)
   try:
     json_data = json.dumps(r.json())
   except JSONDecodeError:
     np.nan

   data = yaml.load(json_data)
   foo(data['index'])
   return foos_list
我想将该函数应用于
lis
的每个元素。因此,我尝试了以下方法:

在:

试试这个:

for i in range(len(lis)):
    lis[i] = [my_req(item) for item in lis[i][0].split()]

根据问题描述和示例数据,您的输入是字符串列表,其中每个子列表的长度为1,您需要:

[my_req(item[0]) for item in lis]
这将返回元组列表的列表。如果要将其展平,请使用
itertools

list(itertools.chain.from_iterable(my_req(item[0]) for item in lis))

我得到:
AttributeError:“tuple”对象没有属性“split”
您在内部列表中存储了什么?它不是字符串吗?只需打印n查看:
print(lis)
或检查类型。此代码将按以下顺序调用我的请求:我的请求(“hi”)、我的请求(“how”)、我的请求(“are”)、我的请求(“you”),并将结果存储在列表中。这就是你想要的吗?我想要:我的要求(“你好”),我的要求(“很好”),我的要求(“lore lipsum dolor done”)…my_req采用哪种类型的参数?似乎它只需要一个字符串参数。因此,请确保您正在向它传递字符串。函数
my_req
中的
except
块是无用的,因为如果出现异常,函数将继续执行,就像什么都没有发生一样。@J.Do…您需要分析您传递的内容并为什么。列表不同于字符串。强制不会有帮助。my_req返回什么?我没有看到返回语句。lis=[my_req(item)for item in[lis]]与lis=[my_req(lis)]是一样的。那些括号中的东西不应该到处乱扔。你需要理解从一些简单示例开始的列表。这就是你的函数
my_req
返回的结果,因为你从来没有问过它,我不知道它应该做什么以及如何修复它。这很奇怪,因为当我在一个句子上测试它时,它会返回一个简单的结果元组列表…原始帖子中的函数体非常混乱。例如,函数返回一个未定义的变量。在寻求帮助之前,您必须先修复它。我将原始列表修改为字符串列表…在这种情况下,这样做是否有帮助?…首先,您的更改使我的答案无效。祝您好运修改它。第二,同样我说,你的工作一团糟。
list(itertools.chain.from_iterable(my_req(item[0]) for item in lis))