gpt4 book ai didi

python - 如何用文件作为键在 Python 中制作字典?

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:06 25 4
gpt4 key购买 nike

我正在尝试使用 Requests 和 Glob 将本地驱动器上文件夹中的所有文件发布到某个 Web URL。每次我将新文件发布到 URL 时,我想向字典中添加一个新的“键值”项,即“文件名(键),发布文件后从服务器输出(值)”:

import requests, glob, unicodedata

outputs = {}

text_files = glob.iglob("/Users/ME/Documents/folder/folder/*.csv")

url = 'http://myWebsite.com/extension/extension/extension'

for data in text_files:
file2 = {'file': open(data)}
r = requests.post(url, files=file2)
outputs[file2] = r.text

这给了我错误:

Traceback (most recent call last):
File "/Users/ME/Documents/folder/folder/myProgram.py", line 15, in <module>

outputs[file2] = r.text
TypeError: unhashable type: 'dict'

这是因为(我认为)“file2”属于“dict”类型。在我将其发布为文件名字符串后, 是否可以转换/更改“file2”?

最佳答案

您正在尝试使用文件对象,而不是文件名称。使用data作为key:

for data in text_files:
file2 = {'file': open(data)}
r = requests.post(url, files=file2)
outputs[data] = r.text

更好的是,使用更有意义的名称,并使用 with 为您再次关闭打开的文件对象:

for filename in text_files:
with open(filename) as fileobj:
files = {'file': fileobj}
r = requests.post(url, files=files)
outputs[filename] = r.text

关于python - 如何用文件作为键在 Python 中制作字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23701675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com