【问题标题】:Decode a column of Base64 strings in Python在 Python 中解码一列 Base64 字符串
【发布时间】:2019-03-15 16:37:36
【问题描述】:

情况:我有一列要从 SQL 中提取,其中包含我想解码的数十万个 Base 64 字符串。

一个解码后的字符串如下所示:

b'{"a":1,"b":2,"c":3,...}'

目标: 我怎样才能简单地提取第一个字典的值。在这种情况下,这将是 1。我希望结果以 numpy 数组或 df 结尾。

我找到了以下代码来帮助我解码一个字符串,但不确定如何将它用于列中的每一行。

import base64
coded_string = '''value to decode'''
base64.b64decode(coded_string)

【问题讨论】:

  • 把它变成一个对象并像访问字典一样访问它。
  • @TheIncorrigible1 在解析 ValueError: malformed node or string: 时得到以下错误信息:
  • 那是因为你传递的是一个字节对象,你需要先解码它:result = ast.literal_eval(entry.decode('utf8'))
  • 如果您不介意发布答案,我可以接受它已解决@TheIncorrigible1

标签: python pandas numpy dataframe base64


【解决方案1】:

假设您的 sn-p 是格式正确的 Python(尽管这似乎更可能是 JSON),您可以使用 literal_eval

from ast import literal_eval
from base64 import b64decode
from pprint import pprint

binary = b64decode(some_str)

lib = literal_eval(binary.decode('utf8'))
pprint(lib)

【讨论】:

    猜你喜欢
    • 2011-10-18
    • 2020-12-26
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多