python对dataframe中series的json格式解析

2023-11-03

方法1:如果df里只有一列json格式,可以保存为txt,然后再删掉列名,在进行处理。

import pandas as pd

result = []
with open(r"C:\Users\Administrator\Desktop\json处理.txt") as f:
    for line in f:
        print(line) # txt样子
        line = line.replace('""','"')
        line = line.replace('"{','{')
        line = line.replace('}"','}')
#         print(line) # 处理后的line
        dict_o = eval(line.strip()) #eval:将字符串字典转换为字典,strip:将某行字的两端空格去掉
        result.append(dict_o)
df = pd.DataFrame(result)
df

txt 内容


{""imei"":""5gy5"",""deviceid"":""c5ty7890h"",""accid"":""null""}

{"imei":"5gy5","deviceid":"c5ty7890h","accid":"null"}

{""imei"":""5rrr5"",""createtime"":""c5ty7890h"",""accid"":""null""}

{"imei":"5rrr5","createtime":"c5ty7890h","accid":"null"}

{""appid"":""5eeey5"",""deviceid"":""c5ty7890h"",""createtime"":""c5ty7890h"",""accid"":""null""}

{"appid":"5eeey5","deviceid":"c5ty7890h","createtime":"c5ty7890h","accid":"null"}

{""imei"":""null"",""deviceid"":""c544ty7890h"",""accid"":""null""}

{"imei":"null","deviceid":"c544ty7890h","accid":"null"}

结果输出:

imei deviceid accid createtime appid
0 5gy5 c5ty7890h null NaN NaN
1 5gy5 c5ty7890h null NaN NaN
2 5rrr5 NaN null c5ty7890h NaN
3 5rrr5 NaN null c5ty7890h NaN
4 NaN c5ty7890h null c5ty7890h 5eeey5
5 NaN c5ty7890h null c5ty7890h 5eeey5
6 null c544ty7890h null NaN NaN
7 null c544ty7890h null NaN NaN

方法2

import json
import pandas as pd
df = pd.read_excel(r"C:\Users\Administrator\Desktop\json处理.xlsx")
print(df)
data = df.to_dict(orient='records')
for _ in data:
    _.update(json.loads(_['json']))
    del _['json']

df1 = pd.DataFrame(data)
df1

原表

    城市                                               json
0   重庆  {"imei":"5gy5","deviceid":"c5ty7890h","accid":...
1   北京  {"imei":"5gy5","deviceid":"c5ty7890h","accid":...
2   上海  {"imei":"5rrr5","createtime":"c5ty7890h","acci...
3   广州  {"imei":"5rrr5","createtime":"c5ty7890h","acci...
4   深圳  {"appid":"5eeey5","deviceid":"c5ty7890h","crea...
5   地球  {"appid":"5eeey5","deviceid":"c5ty7890h","crea...
6   火星  {"imei":"null","deviceid":"c544ty7890h","accid...
7  太阳星  {"imei":"null","deviceid":"c544ty7890h","accid...

结果输出:

城市 imei deviceid accid createtime appid
0 重庆 5gy5 c5ty7890h null NaN NaN
1 北京 5gy5 c5ty7890h null NaN NaN
2 上海 5rrr5 NaN null c5ty7890h NaN
3 广州 5rrr5 NaN null c5ty7890h NaN
4 深圳 NaN c5ty7890h null c5ty7890h 5eeey5
5 地球 NaN c5ty7890h null c5ty7890h 5eeey5
6 火星 null c544ty7890h null NaN NaN
7 太阳星 null c544ty7890h null NaN NaN

方法3,取json的固定字段

import json
import pandas as pd
df = pd.read_excel(r"C:\Users\Administrator\Desktop\json处理.xlsx")
print(df)
tmp=[]
for line in df.json.values:
#     d=eval(line)[0] 
    d=eval(line)
    tmp.append(d.get('imei') or d.get('deviceid'))
    # tmp.append(d.get('xx')['yy']) #如果是嵌套字典,就用此方法
df['结果列']=tmp
df

原表

    城市                                               json
0   重庆  {"imei":"5gy5","deviceid":"c5ty7890h","accid":...
1   北京  {"imei":"5gy5","deviceid":"c5ty7890h","accid":...
2   上海  {"imei":"5rrr5","createtime":"c5ty7890h","acci...
3   广州  {"imei":"5rrr5","createtime":"c5ty7890h","acci...
4   深圳  {"appid":"5eeey5","deviceid":"c5ty7890h","crea...
5   地球  {"appid":"5eeey5","deviceid":"c5ty7890h","crea...
6   火星  {"imei":"null","deviceid":"c544ty7890h","accid...
7  太阳星  {"imei":"null","deviceid":"c544ty7890h","accid...

结果输出:

城市 json 结果列
0 重庆 {"imei":"5gy5","deviceid":"c5ty7890h","accid":... 5gy5
1 北京 {"imei":"5gy5","deviceid":"c5ty7890h","accid":... 5gy5
2 上海 {"imei":"5rrr5","createtime":"c5ty7890h","acci... 5rrr5
3 广州 {"imei":"5rrr5","createtime":"c5ty7890h","acci... 5rrr5
4 深圳 {"appid":"5eeey5","deviceid":"c5ty7890h","crea... c5ty7890h
5 地球 {"appid":"5eeey5","deviceid":"c5ty7890h","crea... c5ty7890h
6 火星 {"imei":"null","deviceid":"c544ty7890h","accid... null
7 太阳星 {"imei":"null","deviceid":"c544ty7890h","accid... null
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python对dataframe中series的json格式解析 的相关文章

  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • jQuery AJAX 请求在 IE8 中失败,并显示消息“错误:调用 open 方法之前无法调用此方法。”

    我正在使用 jQuery 1 4 2 并尝试执行一个简单的 AJAX 请求 目标 URL 返回一个 JSON 字符串 我使用 jslint 对其进行了验证 该请求在 Firefox 和 Chrome 中有效 但不想在 IE8 中工作 我无法
  • jQuery:处理 getJSON() 中的错误?

    使用 jQuery 时如何处理 500 错误getJSON http api jquery com jQuery getJSON 有几个关于错误处理的问题getJSON and https stackoverflow com questio
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 如何格式化 Json 输出

    请帮助我如何获取 JSON 输出 如下所示 costMethod Average fundingDate 2008 10 02 fundingAmount 2510959 95 代替 type sma costMethod Average
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我

随机推荐

  • 五分钟让你彻底了解TDD、ATDD、BDD&RBE

    在目前比较流行的敏捷开发模式 如极限编程 Scrum方法等 中 推崇 测试驱动开发 Test Driven Development TDD 测试在先 编码在后的开发实践 TDD有别于以往的 先编码 后测试 的开发过程 而是在编程之前 先写测
  • PostgreSQL用户登录失败自动锁定的解决办法

    墨墨导读 PostgreSQL使用session exec插件实现用户密码验证失败几次后自动锁定 本文介绍一种处理方案 一 插件session exec安装配置篇 下载插件并编译安装 https github com okbob sessi
  • RPA机器人的两种类型与未来发展

    眼下 RPA 机器人流程自动化 日渐成为业务流程优化重要解决方案和企业关注的重点 RPA不仅可以改善企业的工作方式 带来效率的提升和超高的投资回报率 ROI 其潜在的其他好处也是其他工具所无法比拟的 如改善客户体验 提高员工满意度 提高人才
  • 机器学习(一)svm运用实例

    机器学习 一 svm运用实例 这里我使用sklearn svm SVC函数 首先介绍一下函数参数 sklearn svm SVC C 1 0 kernel rbf degree 3 gamma auto coef0 0 0 shrinkin
  • TCPIP四层协议

    TCP IP四层协议 在说TCP IP四层协议之前 就不得不说OSI七层模型 OSI七层模型 自底向上依次是物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP IP体系结构的优点 1 简化了计算机网络的结构 从原来的七层模型
  • UITabBarItem

    UITabBarController UITabBar UIBarItem UITabBarItem UITabBarItem就是UITabBar上显示的小按钮 我们也可以定制系统UITabBarItem按钮 只需通过UITabBarIte
  • C/C++的64位整型 zz

    为了和DSP兼容 TSint64和TUint64设置成TSint40和TUint40一样的数 结果VC中还是认为是32位的 显然不合适 typedef signed long int TSint64 typedef unsigned lon
  • 初始化 Repo错误 错误信息:fatal: error [Errno 111] Connection refused

    错误信息 fatal error Errno 111 Connection refused 解决方法 修改home 目录下的 bashrc文件 gedit bashrc 在文件的末尾添加如下命令 export PATH bin PATH e
  • QT5.6静态编译添加ODBC数据库

    qt5 6已经编译好 现在添加ODBC数据库的支持 1 进入qt everywhere opensource src 5 6 3 qtbase src plugins sqldrivers odbc目录 运行qmake exe 然后再运行n
  • C语言学生管理系统课程设计

    include
  • cookie和session之间的关系

    当登录接口依赖token的 可以先登录后 token存到一个yaml或者json或者ini的配置文件里面 后面所有的请求去拿这个数据就可以全局使用 如果是cookies的参数 可以用session自动关联 详情如下 一 cookie与ses
  • 超全!深度学习在计算机视觉领域的应用一览

    计算机视觉领域正在从统计方法转向深度学习神经网络方法 计算机视觉中仍有许多具有挑战性的问题需要解决 然而 深度学习方法正在针对某些特定问题取得最新成果 在最基本的问题上 最有趣的不仅仅是深度学习模型的表现 事实上 单个模型可以从图像中学习意
  • MySQL查询数据库中所有表名及注释等信息

    1 查询所有表名 select table name from information schema tables where table schema 当前数据库 2 查看所有字段和字段注释 SELECT COLUMN NAME 字段 c
  • torch.Size理解

    torch Size括号中有几个数字就是几维 第一层 最外层 中括号里面包含了两个中括号 以逗号进行分割 这就是 2 3 4 中的2 第二层中括号里面包含了三个中括号 以逗号进行分割 这就是 2 3 4 中的3 第三层中括号里面包含了四个数
  • Python中MD5加密

    MD5是什么 下面的概念是百度百科的 Message Digest Algorithm MD5 中文名为消息摘要算法第五版 为计算机安全领域广泛使用的一种散列函数 用以提供消息的完整性保护 该算法的文件号为RFC 1321 R Rivest
  • ev3编程 python_乐高 EV3 高级编程 - 第四课:Python 模块

    译者按 使用 ev3dev Linux 系统并用 Python 编程的人数比例很低 好像这一课这样写 Python 编程的就更少了 你会发现程序的重用率会大大的提高 EV3 Lesson 4 Python Modules EV3 第 4 课
  • win10 电脑 .Net framework3.5 组件无法安装0x800f801f

    最近在win10上安装了MotorControl Workbench 5 4 0软件需要用到 Net framework3 5 但是安装Net framework3 5老是出错 无论是下载离线安装包安装 还是通过 控制面板 中 程序 的 启
  • 【SSM框架系列】Spring IoC(控制反转) & DI(依赖注入)

    Spring是什么 Spring是分层的 Java SE EE应用 full stack 轻量级开源框架 以 IoC Inverse Of Control 反转控制 和 AOP Aspect Oriented Programming 面向切
  • 指数增强(股票)——Python量化

    指数增强策略 目录 指数增强策略 1 策略原理 2 策略步骤 3 策略代码 4 回测结果和稳健性分析 1 策略原理 说到指数增强 就不得不说指数 在进行股票投资时 有一种分类方式是将投资分为主动型投资和被动型投资 被动型投资是指完全复制指数
  • python对dataframe中series的json格式解析

    方法1 如果df里只有一列json格式 可以保存为txt 然后再删掉列名 在进行处理 import pandas as pd result with open r C Users Administrator Desktop json处理 t