【问题标题】:django file upload doesn't work: f.read() returns ''django 文件上传不起作用:f.read() 返回 ''
【发布时间】:2023-04-07 15:51:01
【问题描述】:

我正在尝试使用 django 上传和解析 json 文件。在我需要解析 json 之前,一切都很好。然后我得到这个错误:

No JSON object could be decoded: line 1 column 0 (char 0)

这是我的代码。 (我按照here 的说明进行操作,并覆盖了handle_uploaded_file 方法。)

def handle_uploaded_file(f, collection):
#  assert False, [f.name, f.size, f.read()[:50]]
  t = f.read()
  for j in serializers.deserialize("json", t):
    add_item_to_database(j)

奇怪的是,当我取消注释“断言”行时,我得到了这个:

[u'myfile.json', 59478, '']

所以看起来我的文件以正确的大小上传(我已经在服务器上验证了这一点),但读取命令似乎完全失败了。

有什么想法吗?

【问题讨论】:

  • type(f)t 是什么?我的怀疑是 .read() 有效,但有些东西不是有效的 JSON。
  • 来自:assert False, [f.name, f.size, f.read()[:50], type(f), type(t), len(t)] 我明白了, [u'wikileaks_cmets.json', 59478, '', , ,0]
  • 酷。字符串中有什么?
  • Re: JSON 无效——这也是我的第一个猜测。但是该文件是使用 simplejson 创建的,我已经通过验证器运行了它。我很有信心 json 不是问题。
  • 什么都没有——它是一个长度为零的字符串。

标签: django json upload


【解决方案1】:

我以前见过这个。您的文件有长度,但读取它没有。我想知道它是否以前被阅读过……试试这个:

f.seek(0)
f.read()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2011-03-07
    • 2020-03-03
    • 2020-10-21
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多