关于json数据的写入(write())必须为str类型及写入后双引号“变为‘号问题

2023-11-06

1、原始json数据

[
    {
        "text": "黎城县东崖底中心校学生用床购置项目成交公告",
        "label": "1"
        "duoyu": "0"
    },
    {
        "text": "淮南师范学院采购2017年智库项目、科研建设项目、学科及科技创新平台项目(1包)中标公示",
        "label": "1"
        "duoyu": "0"
    }
]

2、经过初步处理,对上述数据进行操作,需要去除"duoyu": "0"项,此时读取之后对值进行更改要存入另一个新的json文件中,但是读取完之后,直接使用write()写入会报错如下

TypeError: write() argument must be str, not list

3、常见错误是直接强制进行转换,如果不考虑后续,可以直接转换,如下:

# use_data/data17.json为文件路径
with open('use_data/data17.json', 'w', encoding='utf-8') as f:
    f.write(str(count_list))

但是会存在问题:
问题一:会造成写入的时候双引号变单引号,在新文件内需要手动调整,如果原始数据中文本存在引号可能更加麻烦
问题二:如果是多文件,需要更改文件路径,读取时无法直接进行赋值更改
4、故使用其他方法进行写入,在写入前,进行json.dumps转换,如下

count_list = json.dumps(count_list)

但是同样会出现问题,写入的数据,虽然没有了问题二的报错信息,但是数据内是字符类型,如下:

[
    {
        "text": "\u9ece\u57ce\u53bf\u4e1c\u5d16\u5e95\u4e2d\u5fc3\u6821\u5b66\u751f\u7528\u5e8a\u8d2d\u7f6e\u9879\u76ee\u6210\u4ea4\u516c\u544a",
        "label": "\u4e2d\u6807\u516c\u544a"
    },
    {
        "text": "\u6dee\u5357\u5e08\u8303\u5b66\u9662\u91c7\u8d2d2017\u5e74\u667a\u5e93\u9879\u76ee\u3001\u79d1\u7814\u5efa\u8bbe\u9879\u76ee\u3001\u5b66\u79d1\u53ca\u79d1\u6280\u521b\u65b0\u5e73\u53f0\u9879\u76ee(1\u5305)\u4e2d\u6807\u516c\u793a",
        "label": "\u4e2d\u6807\u516c\u544a"
    }
]

5、为了解决这个问题,需要在问题4中的代码后添加如下:

json_data = json.dumps(json_data, ensure_ascii=False)

即添加ensure_ascii=False部分
6、总结,在json格式写入时,防止报错str以及字符显示,在写入前添加代码:

json_data = json.dumps(json_data, ensure_ascii=False)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于json数据的写入(write())必须为str类型及写入后双引号“变为‘号问题 的相关文章

  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 使用 JSON 参数的 Postgres 批量 INSERT 函数

    这是一个plpgsqlpostgres 的函数9 6 它试图INSERT一行 如果插入没有失败 由于违反键约束 那么它会运行更多命令 CREATE FUNCTION foo int text text RETURNS void AS BEG
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐