futui 发表于 2023-4-11 23:51:04

单引字典变数据帧的问题,求大师帮忙

本帖最后由 futui 于 2023-4-11 23:54 编辑

data=‘’‘var returnjson= {data:[["30532593","安w安","80016241","中金公司","920007,920927","中金恒瑞债券A,中金恒瑞债券C","496","4.31%","920007","中金恒瑞债券A","21.89亿元","4.31%"],["30777698","艾妮","80000222","华夏基金","002011,010692,010693","华夏红利混合,华夏核心价值混合A,华夏核心价值混合C","223","-2.73%","010692","华夏核心价值混合A","60.93亿元","-2.73%"],["30467905","李aw海","80000224","国泰基金","005970,020018,519020,519022","国泰优选股票,国泰金鹿混合,国泰金泰灵活配置混合A,国泰金泰灵活配置混合C","2498","131.58%","020018","国泰金鹿混合","5.45亿元","131.58%"]],record:3388,pages:4,curpage:1}’‘’


data_str = str(response)
data_str1 = re.sub(r"\'(.*?)\'", r'"\1"', data_str)
data_json = json.loads(data_str1)['data']
df = pd.DataFrame(data_json)
   
print(df)

我代码运行错误

isdkz 发表于 2023-4-11 23:55:11

本帖最后由 isdkz 于 2023-4-11 23:56 编辑

您的代码有一些小问题。根据您给出的数据,我为您修改了代码,以下是修改后的代码:

import re
import json
import pandas as pd

data = '''var returnjson= {data:[["30532593","安安","80016241","中金公司","920007,920927","中金恒瑞债券A,中金恒瑞债券C","496","4.31%","920007","中金恒瑞债券A","21.89亿元","4.31%"],["30777698","艾邦妮","80000222","华夏基金","002011,010692,010693","华夏红利混合,华夏核心价值混合A,华夏核心价值混合C","223","-2.73%","010692","华夏核心价值混合A","60.93亿元","-2.73%"],["30467905","李海","80000224","国泰基金","005970,020018,519020,519022","国泰消费优选股票,国泰金鹿混合,国泰金泰灵活配置混合A,国泰金泰灵活配置混合C","2498","131.58%","020018","国泰金鹿混合","5.45亿元","131.58%"]],record:3388,pages:4,curpage:1}'''

# 提取 JSON 数据
data_str = data
# 使用正则表达式替换单引号为双引号
data_str1 = re.sub(r"(\w+):", r'"\1":', data_str)
# 将 JSON 字符串转换为 Python 字典
data_json = json.loads(data_str1)['data']
# 将数据转换为 DataFrame
df = pd.DataFrame(data_json)

print(df)

我对代码做了以下修改:


[*]修改了正则表达式,用于将不带引号的键名添加双引号,以生成有效的 JSON 字符串。
[*]现在您应该可以正常运行代码并获得预期结果。
页: [1]
查看完整版本: 单引字典变数据帧的问题,求大师帮忙