You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将字节字面量转换为Pandas DataFrame时遇错误求助

正确将字节字面量数据转换为Pandas DataFrame的方法

错误原因分析

  1. 直接使用pd.DataFrame(data_decode)报错:data_decode是JSON格式的字符串,并非DataFrame构造器所需的结构化数据(如列表、字典序列),因此无法直接转换。
  2. 使用eval(data_decode)报错:若数据中包含JSON的null值,eval会将其视为未定义的Python变量,导致NameError;同时eval存在安全风险,不建议用于解析JSON数据。

正确方法

方法一:借助json模块解析后转换

先将解码后的JSON字符串转为Python列表(含字典元素),再传入DataFrame构造器:

import json
import pandas as pd

# 原始字节数据
data = b'[{"Name":"USA Stocks","Code":"US","OperatingMIC":"XNAS, XNYS","Country":"USA","Currency":"USD","CountryISO2":"US","CountryISO3":"USA"},{"Name":"London Exchange","Code":"LSE","OperatingMIC":"XLON","Country":"UK","Currency":"GBP","CountryISO2":"GB","CountryISO3":"GBR"}]'

# 解码为字符串
data_decode = data.decode("utf-8")

# 解析JSON为Python数据结构
data_json = json.loads(data_decode)

# 转换为DataFrame
df = pd.DataFrame(data_json)

方法二:直接使用Pandas内置的read_json(更简洁)

pd.read_json可直接处理JSON格式的字节数据或字符串,自动完成解析和转换:

import pandas as pd

# 原始字节数据
data = b'[{"Name":"USA Stocks","Code":"US","OperatingMIC":"XNAS, XNYS","Country":"USA","Currency":"USD","CountryISO2":"US","CountryISO3":"USA"},{"Name":"London Exchange","Code":"LSE","OperatingMIC":"XLON","Country":"UK","Currency":"GBP","CountryISO2":"GB","CountryISO3":"GBR"}]'

# 直接转换为DataFrame
df = pd.read_json(data)

# 若已解码为字符串,也可直接传入
# data_decode = data.decode("utf-8")
# df = pd.read_json(data_decode)

这两种方法都能正确处理JSON中的null值(自动转为Python的None),且避免了eval的安全问题,是解析JSON数据到DataFrame的标准做法。

内容的提问来源于stack exchange,提问作者prashanth manohar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:40:03