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

python 3.5中的json.loads和Redis

司马高明
2023-03-14
问题内容

我使用json.dumps()和RPUSH(ed)在redis列表中创建了一个JSON对象。当使用LRANGE(redis.lrange())返回JSON时,我收到一个二进制字符串

 b'{"si":"00:ff" ...

因此json.loads()会引发错误:*** TypeError:JSON对象必须为str,而不是’bytes’。我应如何恢复为ascii?


问题答案:

通常,您需要记住首字母缩略词BADTIE:

Bytes
Are
Decoded
Text
Is
Encoded

如果有字节,则会运行my_bytes.decode()以获取文本。

如果您有文本,则会运行my_text.encode()以获取字节。您也可以指定编码(如果知道的话),但是它有一个合理的默认值。



 类似资料:
  • 问题内容: 在Python中,和之间有什么区别? 我猜想 load() 函数必须与文件对象一起使用(因此,我需要使用上下文管理器),而 load() 函数将文件路径作为字符串。这有点令人困惑。 字母“ s ” 代表 字符串 吗? 非常感谢你的回答! 问题答案: 是的,代表字符串。该函数不采用文件路径,而是将文件内容作为字符串。查看位于https://docs.python.org/2/librar

  • 本文向大家介绍Anaconda2下实现Python2.7和Python3.5的共存方法,包括了Anaconda2下实现Python2.7和Python3.5的共存方法的使用技巧和注意事项,需要的朋友参考一下 Anaconda 本质上是一个软件发行版,包含了 conda、Python 等 180 多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 500 MB),

  • 我正在从一个JSON文件“new.JSON”中获取一些数据,我想过滤一些数据并将其存储到一个新的JSON文件中。下面是我的代码:

  • 问题内容: 我有一个包含JSON对象的文件。已通过以下方式加载: 此时,input_data仅包含一个字符串,现在我将其解析为JSON: data_content具有我需要的字符串的JSON表示形式,但是由于某种原因,在json.loads之后我不清楚,它改变了键的原始顺序,例如,如果我的文件包含以下内容: 在json.loads之后,顺序更改为类似以下内容: 为什么会这样呢?有办法保留订单吗?我

  • 问题内容: 我正在尝试运行以前运行的应用程序。它曾经在Ubuntu和Windows 7上运行。我现在有一台Windows 10计算机,代码失败。可能是因为我现在使用的是python 3.5,尽管坦率地说我不记得我在其他计算机上(不再可用)上的内容。 关键行是: 不久前已从各个地方取消。但是,现在当我运行它时,它会引发错误: 在交互式会话中,似乎是第三行失败了: 我试过了 在命令提示符下,但错误仍然

  • 我得到以下错误。有人能帮帮我吗 Traceback(最近的调用为last):文件“index.py”,第38行,在浏览器中=webdriver.chrome(r“./chromeDriver”)#替换为>.firefox(),或使用您选择的浏览器文件“/usr/local/lib/python3.5/dist->packages/selenium/webdriver/chrome/webdrive