002、Python中json字符串与字典转换

时间:2022-09-25 06:07:41

1、测试用例文件TestCase.xlsx

002、Python中json字符串与字典转换

2、编写Python文件进行读取

#!/usr/bin/env python
# -*- coding:utf-8 -*- import time
import xlrd class ReadExcel:
def __init__(self,excel_file):
self.excel_file = excel_file
self.case_id = 0 #用例ID
self.http_method = '' #接口http方法
self.request_name = '' #接口ming
self.request_url = '' #接口请求url
self.request_param = ''#请求参数
self.test_method = '' #测试方法
self.test_desc = '' #测试(用力)描述
self.result = '' #测试结果
self.reason = '' #失败原因 def read_excel(self):
excel_data = []
data = xlrd.open_workbook(self.excel_file)
table = data.sheet_by_index(0) #通过索引顺序获取
for i in range(1,table.nrows):
excel_data.clear()
if table.cell(i,7).value.replace('\n','').replace('\r','') != 'Yes':
continue
row_data = table.row_values(i)
self.case_id = str(int(table.cell(i, 0).value)).replace('\n','').replace('\r','')
self.test_desc = table.cell(i, 1).value.replace('\n','').replace('\r','')
#api_host = table.cell(i, 2).value.replace('\n','').replace('\r','')
self.request_url = table.cell(i, 3).value.replace('\n','').replace('\r','')
self.test_method = table.cell(i, 4).value.replace('\n','').replace('\r','')
self.request_param = table.cell(i, 5).value.replace('\n','').replace('\r','')
self.result = table.cell(i, 6).value
excel_data.append((self.case_id,self.test_desc,self.request_url,self.test_method,self.request_param,self.result))
yield excel_data

3、通过json.loads(str)将字符串转换成字典

import json

dict1 = json.loads(str)

读取的过程中一致出现问题:

解决方案如下:

有一个需求,需要用python把json字符串转化为字典

inp_str = " {'k1':123, 'k2': '345',’k3’,’ares’} "

import json
inp_str = " {'k1':123, 'k2': '345',’k3’,’ares’} "
print json.loads(a)

死活出不来结果,还报错,没搞明白。

最后,直接复制网上的代码,OK,运行成功,可是把我的inp_srt变量填进去,不行,报错;开始对比两个变量有什么不同,一直以为Python中双引号单引号可以随便用,意思不变;最后百度了知道json的标准格式:要求必须 只能使用双引号作为键 或者 值的边界符号,不能使用单引号,而且“键”必须使用边界符(双引号) 
改了后OK了。

#-*-coding:utf-8-*-
import json
inp_strr = '{"k1":123, "k2": "456", 'k3':"ares"}'
inp_dict = json.loads(inp_strr) # 根据字符串书写格式,将字符串自动转换成 字典类型
print inp_dict

今后如何避免:所有的json串均采用双引号。