当前位置: 首页 > 面试题库 >

TypeError:不带编码的字符串参数

乐正育
2023-03-14
问题内容

我想将Json的压缩gzip上传到Google Storage。

我有以下代码:

import datalab.storage as storage
import gzip
path = prefix + '/orders_newline.json.gz'
storage.Bucket('orders').item(path).write_to(gzip.compress(bytes(create_jsonlines(source)),encoding='utf8'), 'application/json')

create_jsonlines(source)是返回的Json换行符分隔的功能。

运行此代码将给出:

TypeError: string argument without an encoding

在Python文档说,格式是:bytes([source[, encoding[, errors]]])我不知道我把它理解为不存在如何使用它的例子。

我也尝试过

bytes([(create_jsonlines(source))[,encoding='utf8']])

这给出了:

SyntaxError: invalid syntax

我正在运行Python 3.5


问题答案:

您没有bytes正确使用该功能。检查一下:

>>> a = "hi"
>>> bytes(a, encoding='utf8')
b'hi'

你可以试试:

bytes((create_jsonlines(source)), encoding='utf8')

encoding是该bytes函数的参数,而您正在该函数之外使用它。



 类似资料:
  • 问题内容: 这是输出。我相信这些是utf-8字符串…其中一些可以是NoneType,但在类似这样的字符串之前会立即失败… TypeError:格式字符串的参数不足 虽然是7比7? 问题答案: 请注意,格式化字符串的语法已过时。如果您的Python版本支持它,则应编写: 这也可以修复您碰巧遇到的错误。

  • 问题内容: 当我尝试一些类似的代码时,我正在eclipse上开发一个android应用 它给我以下错误 所以我将编译器更改为1.7,这给了我另一个错误 那么,有没有办法让switch(String)在android应用程序中工作?或者我别无选择,只能用 问题答案: 对象声明是Java1.7中引入的新功能。不幸的是,Android需要版本1.6或1.5。这就是为什么您不得不忘记一段时间的这种构造的原

  • 问题内容: 说我有一个网址 并且我有一个用户输入的查询,例如: 随机词银行 我希望结果是正确编码的URL: 实现此目标的最佳方法是什么?我尝试创建URI / URL对象,但没有一个是正确的。 问题答案: 应该是要走的路。你只需要记住只对单个查询字符串参数名称和/或值进行编码,而不对整个URL 进行编码,请确保对查询字符串参数分隔符和参数名称-值分隔符都不进行编码。 请注意,查询参数中的空格由+而不

  • 假设我有一个URL 并且我有一个用户输入的查询,例如: 随机字500英镑银行$ 我希望结果是一个正确编码的URL: 实现这一点的最佳方法是什么?我尝试了并创建URI/URL对象,但结果都不是很对。

  • 问题内容: 我有一个网址 并且我有一个用户输入的查询,例如: 我希望结果是正确编码的URL: 实现此目标的最佳方法是什么?我尝试创建URI / URL对象,但是没有一个是正确的。 问题答案: 可以使用 。您只需要记住只对单个查询字符串参数名称和/或值进行编码,而不对整个URL 进行编码,请确保对查询字符串参数分隔符&和参数名称-值分隔符都不进行编码=。 请注意,查询参数中的空格由而不是表示,这是合

  • 问题内容: ’=?KOI8-R?B?W1JFUS0wMDI1NDEtNDc5NzddIO / h7yAi89TSz8rGwdLGz9IiIDs =?= \ r \ n \ t =?KOI8-R?B?Ry43MjkgKDEwKQ ==?=’ 如何将其转换为可读的内容?谢谢 ! 问题答案: email.header.decode_header(‘=?KOI8-R?B?W1JFUS0wMDI1NDEtN