python修改json键,python修改json文件

本文目录一览:

请教一个关于python处理json的问题

{

data : {

{

tg_i”:” 1080723 “,

contest_i” : “1001”,

sid : “1567515287”

},

{

tg_id : “1080723”,

contest_id : “1001”,

sid : “1567515287”

}

},

total : “2”

}

然后经过修改,变成:

?

1

{“data”:{{“tg_i”:”1080723″,”contest_i”:”1001″,”sid”:”1567515287″},{“tg_id”:”1080723″,”contest_id”:”1001″,”sid”:”1567515287″}},”total”:”2″}

格式化为:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

{

“data” : { {

“tg_i” : “1080723”,

“contest_i” : “1001”,

“sid” : “1567515287”

}, {

“tg_id” : “1080723”,

“contest_id” : “1001”,

“sid” : “1567515287”

}

},

“total” : “2”

}

但是,去用json解析,但是出错:

Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32

Type “copyright”, “credits” or “license()” for more information.

import json

json.loads(‘{“data”:{{“tg_i”:”1080723″,”contest_i”:”1001″,”sid”:”1567515287″},{“tg_id”:”1080723″,”contest_id”:”1001″,”sid”:”1567515287″}},”total”:”2″}’)

Traceback (most recent call last):

File “pyshell#2”, line 1, in module

json.loads(‘{“data”:{{“tg_i”:”1080723″,”contest_i”:”1001″,”sid”:”1567515287″},{“tg_id”:”1080723″,”contest_id”:”1001″,”sid”:”1567515287″}},”total”:”2″}’)

File “D:\tmp\dev_install_root\Python27_x64\lib\json\__init__.py”, line 326, in loads

return _default_decoder.decode(s)

File “D:\tmp\dev_install_root\Python27_x64\lib\json\decoder.py”, line 366, in decode

obj, end = self.raw_decode(s, idx=_w(s, 0).end())

File “D:\tmp\dev_install_root\Python27_x64\lib\json\decoder.py”, line 382, in raw_decode

obj, end = self.scan_once(s, idx)

ValueError: Expecting property name: line 1 column 9 (char 9)

【折腾过程】

1.刚开始,看了看:

{“data”:{{“tg_i”:”1080723″,”contest_i”:”1001″,”sid”:”1567515287″},{“tg_id”:”1080723″,”contest_id”:”1001″,”sid”:”1567515287″}},”total”:”2″}

好像也都是正常的,没什么错误。

2.后来才发现,对应着错误的位置:

column 9

是大括号'{‘

对应着,格式化的结果中的:

“data” : { {

中的第一个大括号

然后才发现,原来是,data键的值,此处写成用大括号括起来的:

?

1

2

3

4

5

6

7

8

9

10

“data” : { {

“tg_i” : “1080723”,

“contest_i” : “1001”,

“sid” : “1567515287”

}, {

“tg_id” : “1080723”,

“contest_id” : “1001”,

“sid” : “1567515287”

}

},

但是,实际上,data的值,只是两个dict,所以,应该是:

要么改为list:

?

1

2

3

4

5

6

7

8

9

10

“data” : [{

“tg_i” : “1080723”,

“contest_i” : “1001”,

“sid” : “1567515287”

}, {

“tg_id” : “1080723”,

“contest_id” : “1001”,

“sid” : “1567515287”

}

],

要么改为dict:

?

1

2

3

4

5

6

7

8

9

10

“data1” : {

“tg_i” : “1080723”,

“contest_i” : “1001”,

“sid” : “1567515287”

},

“data2” : {

“tg_id” : “1080723”,

“contest_id” : “1001”,

“sid” : “1567515287”

},

对应着,非格式化的内容就是:

?

1

{“data”:[{“tg_i”:”1080723″,”contest_i”:”1001″,”sid”:”1567515287″},{“tg_id”:”1080723″,”contest_id”:”1001″,”sid”:”1567515287″}],”total”:”2″}

和:

?

1

{“data1”:{“tg_i”:”1080723″,”contest_i”:”1001″,”sid”:”1567515287″}, “data2”:{“tg_id”:”1080723″,”contest_id”:”1001″,”sid”:”1567515287″},”total”:”2″}

这样才可以正常解析:

json.loads(‘{“data”:[{“tg_i”:”1080723″,”contest_i”:”1001″,”sid”:”1567515287″},{“tg_id”:”1080723″,”contest_id”:”1001″,”sid”:”1567515287″}],”total”:”2″}’)

{u’total’: u’2′, u’data’: [{u’sid’: u’1567515287′, u’contest_i’: u’1001′, u’tg_i’: u’1080723′}, {u’tg_id’: u’1080723′, u’contest_id’: u’1001′, u’sid’: u’1567515287′}]}

json.loads(‘{“data1”:{“tg_i”:”1080723″,”contest_i”:”1001″,”sid”:”1567515287″}, “data2”:{“tg_id”:”1080723″,”contest_id”:”1001″,”sid”:”1567515287″},”total”:”2″}’)

{u’total’: u’2′, u’data1′: {u’sid’: u’1567515287′, u’contest_i’: u’1001′, u’tg_i’: u’1080723′}, u’data2′: {u’tg_id’: u’1080723′, u’contest_id’: u’1001′, u’sid’: u’1567515287′}}

【总结】

折腾json的话,前提要了解json的语法和规则。

其次才是用某种语言去处理json。

python调用json后关闭程序会清空json文件怎么改?

一、代码不用百修改:

二、user_info.json 文件的内容需要度修改。问

修改有多种方式,需要根据你的实际答需求内来确定,以下提供两种参容考:

1、单一 json 数组

[“yuri”, “yuki”, “yuri”]

2、键值对数组

{

“name”: [“yuri”, “yuki”, “yuri”]

}

三、实际运行验证

python如何修改JSON文件中的某个key值?

with open(‘test.json’, ‘r’) as fr: # 文件路径自己改成完整的

json_all = json.load(fr)

json_all[‘data1’][‘xxx’] = “yyy”

json_all[‘data2’][‘aaa’] = “bbb”

with open(file, ‘w+’) as fw:

json.dump(json_all, fw, ensure_ascii=False, indent=4)

Python如何修改JSON里的内容?

可以首先使用json包的loads函数对json数据进行解析,然后就可以像操作Python数据格式一样对数据进行索引和遍历了。

import json

s = ‘{“aescCityList”:null,”cityAllList”:null,”cityJsonArray”…’

data = json.loads(s)

for city in data[“cityJsonArray”]:

if city[“cityId”] == 4:

print city

原创文章,作者:YOZO,如若转载,请注明出处:https://www.506064.com/n/147130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
YOZOYOZO
上一篇 2024-11-01 14:05
下一篇 2024-11-01 14:05

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29

发表回复

登录后才能评论