gpt4 book ai didi

Python 字符串字节到字节

转载 作者:行者123 更新时间:2023-12-03 18:58:43 25 4
gpt4 key购买 nike

我的字符串数据看起来像 Python 中 JSON 的字节表示

>>> data = """b'{"a": 1, "b": 2}\n'"""
所以在里面,我们有有效的 JSON,看起来像是字节编码的。我想解码字节和 loads内部的 JSON,但由于它是一个字符串,我不能。
>>> data.decode() # nope
AttributeError: 'str' object has no attribute 'decode'
对字符串进行编码似乎也无济于事:
>>> data.encode() # wrong
b'b\'{"a": 1, "b": 2}\n\''
stackoverflow 上有很多字符串到字节的问题,但在我的一生中,我找不到关于这个特定问题的任何信息。有谁知道如何做到这一点?
我不想做和/或不会工作的事情:
  • eval将数据转化为字节对象
  • 剥离 b\n (在我的 JSON 中有各种各样的其他转义数据)。

  • 这是我找到的唯一可行的解​​决方案,并且有很多不喜欢它的地方:
    from ast import literal_eval

    data = """b'{"a": 1, "b": 2}\n'"""
    print(literal_eval(data[:-2] + data[-1:]).decode('utf-8'))

    最佳答案

    我知道你说过你不想剥离 b由于其他转义数据而在字符串内部,但我们不能假设生成这个的任何东西只输出 ascii(因此是 b ),我们可以重新编码它。所以我想你可以使用一个简单的正则表达式( https://regex101.com/r/M0ratk/1 ),然后将其编码为字节。

    import json
    import re

    match = re.match(r"\Ab'(.*)'\Z", data, re.DOTALL)
    data = json.loads(bytes(match[1], 'ascii'))
    这会起作用吗?我不确定它与 literal_eval 相比如何解决方案。

    关于Python 字符串字节到字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65329655/

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