Tips:字符串转json
评论
收藏

Tips:字符串转json

经验分享
星云
2024-02-20 14:03·浏览量:3153
星云
官方发布于 2024-02-20 13:40更新于 2024-02-20 14:033153浏览

一、问题背景

在影刀搭建流程中有时会需要将字符串转为json格式以备后续使用,影刀虽然提供了文本转json的指令,但是有一些隐藏的注意事项,下面一起看看吧。

二、案例及解决思路

数据如下

{'customerBiddingNo': 'HVN1','successfulBidder': '','successfulAmount': 22600.0,'projectId': 1278,'result': 1,'processItems': [{'dateTime': '2024-01-29 09:36:53', 'unitPrice': 127.0},{'dateTime': '2024-01-29 10:01:25', 'unitPrice': 127.0},{'dateTime': '2024-01-29 11:28:06', 'unitPrice': 113.0}]}

方式1:使用指令实现

直接使用转换为json对象会报错: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

这个错误信息是JSON解析器返回的错误消息,表示在JSON文档的第一行第二列(即第一个字符)发现了一个问题。具体来说,它指出JSON解析器期望在该位置找到一个属性名,并且该属性名应该用双引号括起来。

这个错误通常出现在JSON文档中使用了单引号或者没有使用双引号括起属性名的情况下。

转换成json对象底层的指令底层逻辑是用json的loads函数去实现

json.loads:将json字符串转换为字典类型,返回python对象 [str→dict]

而我们当前字符串并不符合json格式,所以要先将所有的单引号替换为双引号,再使用转换成json对象指令就可以了,得到的结果实际是一个字典类型

方式2:使用代码实现

这个数据实际是一个字典,python中有专门针对字典转字符串的函数

json.dumps:将python中的字典类型转换为字符串类型,返回json字符串 [dict→str]

可以将代码写在python模块中,也可以直接在流程中使用插入代码段指令,二者选其一即可

1)写在python模块中

import json
def main(args):
    # 定义一个包含单引号的字典
    data = {
        'customerBiddingNo': 'HVN1',
        'successfulBidder': '',
        'successfulAmount': 22600.0,
        'projectId': 1278,
        'result': 1,
        'processItems': [
            {'dateTime': '2024-01-29 09:36:53', 'unitPrice': 127.0},
            {'dateTime': '2024-01-29 10:01:25', 'unitPrice': 127.0},
            {'dateTime': '2024-01-29 11:28:06', 'unitPrice': 113.0}
        ]
    }

    # 将字典转换为 JSON 格式的字符串
    json_string = json.dumps(data)


    return(json_string)
    pass

流程中调用该模块即可

2)写在插入代码段中

import json

# 定义一个包含单引号的字典
data = {
    'customerBiddingNo': 'HVN1',
    'successfulBidder': '',
    'successfulAmount': 22600.0,
    'projectId': 1278,
    'result': 1,
    'processItems': [
        {'dateTime': '2024-01-29 09:36:53', 'unitPrice': 127.0},
        {'dateTime': '2024-01-29 10:01:25', 'unitPrice': 127.0},
        {'dateTime': '2024-01-29 11:28:06', 'unitPrice': 113.0}
    ]
}

# 将字典转换为 JSON 格式的字符串
json_string = json.dumps(data)

注意打印的时候需要点亮python模式

收藏7
全部评论1
最新
发布评论
评论