【问题标题】:Python binary-data ascii error when encoding in multipart多部分编码时的Python二进制数据ascii错误
【发布时间】:2011-09-23 19:32:19
【问题描述】:

我正在使用这个cookbook recipe 将图像编码为多部分表单数据以上传到 Twitter。

当我运行代码以将图像打包到 django shell 中时,一切都运行良好(甚至是我用来调试带有二进制数据的帖子正文的打印语句)但是当我尝试从 django 命令运行相同的脚本或一个更简单的纯 python 脚本我不断收到这个错误:

body = '\r\n'.join(body)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)

那么,为什么只有在我运行脚本而不是从 shell/CLI 时才会发生这种情况?

感谢所有可以启发我的人:)

【问题讨论】:

  • 你只是调用join方法吗?或者如果您尝试打印结果是否会发生错误?
  • 调用join方法时出现错误,即使删除打印语句仍然会出现
  • 你读过那个食谱上的所有cmets吗?简短的浏览表明 (1) 它使用了已弃用的东西或其他 (2) 有人有解码错误,而其他人提出了修复建议。
  • 是的,我已经阅读并尝试了修复,我正在发布我发现错误的答案,感谢所有帮助:)
  • @piva:您将答案发布在哪里

标签: python http-post multipartform-data


【解决方案1】:

我认为这与this 问题有关。 那里提供的答案对您有帮助吗?

【讨论】:

    【解决方案2】:

    我发现它与我的查询结果有关。 它们以 unicode 形式返回,我使用该值创建图像的路径,例如:

    image_path = "/my/path/%s.jpg" % model.name
    

    model.name 类似于 u'model1' 我打印出这些值并从字符串中删除了 u' 表示法(通过替换 :P 的旧方法)一切正常。

    让我非常沮丧的是,错误指向 '\r\n'.join 而从来没有指向与我的文件名相关的内容。

    【讨论】:

    • """model.name 类似于 u'model1' 我打印出这些值并从字符串中删除了 u' 符号(通过替换 :P 的旧方法)一切正常。” “”……这有点像坐在浴缸里用电锯剪脚趾甲。
    • 是的,我知道,但这只是一个调试测试,而不是我用来运行脚本的实际方法
    猜你喜欢
    • 2014-04-08
    • 2011-11-18
    • 1970-01-01
    • 2015-07-21
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多