精华内容
下载资源
问答
  • 【python】str与json类型转换

    万次阅读 2017-07-13 21:21:24
    避免不了数据类型的转换,比如强制转换string类型,比如转json类型str转jsonpython字符串转json对象,需要使用json模块的loads函数import json str = '{"accessToken": "521de21161b23988173e6f7f48f9ee96e28", ...

    在写接口测试框架时,避免不了数据类型的转换,比如强制转换string类型,比如转json类型

    一、str转json

    str转为json格式,一定需要保证这个str的格式是json string

    1.1 使用json.loads

    字符串str转json对象,需要使用json模块的loads函数

    import json
    str1 = '{"accessToken": "521de21161b23988173e6f7f48f9ee96e28", "User-Agent": "Apache-HttpClient/4.5.2 (Java/1.8.0_131)"}'
    
    json1 = json.loads(str1)
    
    print(json1)
    print(type(json1))
    
    # 输出
    {'accessToken': '521de21161b23988173e6f7f48f9ee96e28', 'User-Agent': 'Apache-HttpClient/4.5.2 (Java/1.8.0_131)'}
    <class 'dict'>
    

    1.2 使用eval

    eval的作用:将字符串str当成有效的表达式来求值并返回计算结果

    即可以通过eval可以把listtupledictstring相互转化

    • list
    str1 = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
    json1 = eval(str1)
    
    print(type(json1))
    print(json1)
    
    # 输出
    <class 'list'>
    [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
    
    • tuple
    str1 = "([1,2], [3,4], [5,6], [7,8], (9,0))"
    
    json1 = eval(str1)
    
    print(type(json1))
    print(json1)
    
    # 输出
    <class 'tuple'>
    ([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
    
    • dict
    str1 = "{'a': 1, 'b': 2}"
    
    json1 = eval(str1)
    
    print(type(json1))
    print(json1)
    
    # 输出
    <class 'dict'>
    {'a': 1, 'b': 2}
    

    注意:
    eval()可以通过运行系统的命令
    比如:eval(“import(‘os’).startfile(‘notepad.exe’)”) #启动记事本程序
    为了保证安全,当需要用户输入时,需要对用户的输入内容进行敏感字符检查和过滤

    1.3 使用literal_eval

    和eval使用方式相同,都可以将字符串str解析成list、tuple或dict,并且避免eval安全性的问题

    import ast
    
    str1 = "{'a': 1, 'b': 2}"
    
    json1 = ast.literal_eval(str1)
    
    print(type(json1))
    print(json1)
    
    # 输出
    <class 'dict'>
    {'a': 1, 'b': 2}
    

    二、json转str

    2.1 使用json.dumps

    import json
    json1 = {"accessToken": "521de21161b23988173e6f7f48f9ee96e28", "User-Agent": "Apache-HttpClient/4.5.2 (Java/1.8.0_131)"}
    
    str1 = json.dumps(json1)
    
    print(str1)
    print(type(str1))
    
    # 输出
    {"accessToken": "521de21161b23988173e6f7f48f9ee96e28", "User-Agent": "Apache-HttpClient/4.5.2 (Java/1.8.0_131)"}
    <class 'str'>
    
    • 参数补充
      json.dumps提供了一些参数,可以对转换的字符串进行特殊的处理
    import json
    json1 = {"accessToken": "521de21161b23988173e6f7f48f9ee96e28", "User-Agent": "Apache-HttpClient/4.5.2 (Java/1.8.0_131)"}
    str1 = json.dumps(json1, sort_keys=True, indent=4, separators=(',', ':'))
    str2 = json.dumps(json1)
    
    
    '''
    我们来对这几个参数进行下解释:
    sort_keys:是否按照字典排序(a-z)输出,True代表是,False代表否。
    indent=4:设置缩进格数,一般由于Linux的习惯,这里会设置为4。
    separators:设置分隔符,在dic = {'a': 1, 'b': 2, 'c': 3}这行代码里可以看到冒号和逗号后面都带了个空格,这也是因为Python的默认格式也是如此,
                如果不想后面带有空格输出,那就可以设置成separators=(',', ':'),如果想保持原样,可以写成separators=(', ', ': ')。
    '''
    

    2.1 使用str

    可以使用强制类型转换将json格式转成str格式

    json1 = {'name':'洛','age':'22'}
    str1 = json.dumps(json1)
    print(str1)
    print(type(str1))
    
    # 输出
    {'name': '洛', 'age': '22'}
    <class 'str'>
    

    三、踩坑问题

    写这篇文章主要是为了mark一个问题,在str转json时,str格式引号问题导致失败报错

    看看下面这段代码

    import json
    str1 = "{'accessToken': '521de21161b23988173e6f7f48f9ee96e28', 'User-Agent': 'Apache-HttpClient/4.5.2 (Java/1.8.0_131)'}"
    
    json1 = json.loads(str)
    
    print(json1)
    print(type(json1))
    

    咋一看没啥问题,但是出现错误

    json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
    

    为什么呢?

    字符串中,双引号在外围,单引号在内嵌,导致转换失败,可以使用json5进行处理


    欢迎关注个人公众号
    在这里插入图片描述

    展开全文
  • 成功解决AttributeError: 'str' object has no attribute 'decode'

    万次阅读 多人点赞 2018-08-26 11:27:11
    成功解决AttributeError: 'str' object has no attribute 'decode' 目录 解决问题 解决思路 解决方法 解决问题 AttributeError: 'str' object has no attribute 'decode' ...

    成功解决AttributeError: 'str' object has no attribute 'decode'

     

     

     

     

    目录

    解决问题

    解决思路

    解决方法


     

     

     

     

     

     

     

     

     

     

    解决问题

    AttributeError: 'str' object has no attribute 'decode'

     

     

     

     

     

    解决思路

    根据问题提示,意思是,属性错误:“str”对象没有属性“decode”
    python3.5和Python2.7在套接字返回值解码上的区别 
    python在bytes和str两种类型转换,所需要的函数依次是encode(),decode()

     

     

     

     

    解决方法

    直接去掉decode('utf8')

    tips:str通过encode()方法可以编码为指定的bytes。反过来,当从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法。反之,则使用encode()方法即可!

    大功告成!

     

     

     

     

     

     

    展开全文
  • python中字符串(str)的常用处理方法

    万次阅读 2016-03-24 22:21:08
    str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str) 例:print '%s length=%d' % (str,len(str)) 一、字母处理 全部大写:str.upper() 全部小写:str.lower() 大...

    str='python String function'

    生成字符串变量str='python String function'

    字符串长度获取:len(str)
    例:print '%s length=%d' % (str,len(str))

    一、字母处理
    全部大写:str.upper()
    全部小写:str.lower()
    大小写互换:str.swapcase()
    首字母大写,其余小写:str.capitalize()
    首字母大写:str.title()
    print '%s lower=%s' % (str,str.lower())
    print '%s upper=%s' % (str,str.upper())
    print '%s swapcase=%s' % (str,str.swapcase())
    print '%s capitalize=%s' % (str,str.capitalize())
    print '%s title=%s' % (str,str.title())
    二、格式化相关
    获取固定长度,右对齐,左边不够用空格补齐:str.ljust(width)
    获取固定长度,左对齐,右边不够用空格补齐:str.ljust(width)
    获取固定长度,中间对齐,两边不够用空格补齐:str.ljust(width)
    获取固定长度,右对齐,左边不足用0补齐
    print '%s ljust=%s' % (str,str.ljust(20))
    print '%s rjust=%s' % (str,str.rjust(20))
    print '%s center=%s' % (str,str.center(20))
    print '%s zfill=%s' % (str,str.zfill(20))

    三、字符串搜索相关
    搜索指定字符串,没有返回-1:str.find('t')
    指定起始位置搜索:str.find('t',start)
    指定起始及结束位置搜索:str.find('t',start,end)
    从右边开始查找:str.rfind('t')
    搜索到多少个指定字符串:str.count('t')
    上面所有方法都可用index代替,不同的是使用index查找不到会抛异常,而find返回-1
    print '%s find nono=%d' % (str,str.find('nono'))
    print '%s find t=%d' % (str,str.find('t'))
    print '%s find t from %d=%d' % (str,1,str.find('t',1))
    print '%s find t from %d to %d=%d' % (str,1,2,str.find('t',1,2))
    #print '%s index nono ' % (str,str.index('nono',1,2))
    print '%s rfind t=%d' % (str,str.rfind('t'))
    print '%s count t=%d' % (str,str.count('t'))

    三、字符串替换相关
    替换old为new:str.replace('old','new')
    替换指定次数的old为new:str.replace('old','new',maxReplaceTimes)
    print '%s replace t to *=%s' % (str,str.replace('t', '*'))
    print '%s replace t to *=%s' % (str,str.replace('t', '*',1))

    四、字符串去空格及去指定字符
    去两边空格:str.strip()
    去左空格:str.lstrip()
    去右空格:str.rstrip()
    去两边字符串:str.strip('d'),相应的也有lstrip,rstrip
    str=' python String function '
    print '%s strip=%s' % (str,str.strip())
    str='python String function'
    print '%s strip=%s' % (str,str.strip('d'))

    按指定字符分割字符串为数组:str.split(' ')

    五、默认按空格分隔
    str='a b c de'
    print '%s strip=%s' % (str,str.split())
    str='a-b-c-de'
    print '%s strip=%s' % (str,str.split('-'))

    六、字符串判断相关
    是否以start开头:str.startswith('start')
    是否以end结尾:str.endswith('end')
    是否全为字母或数字:str.isalnum()
    是否全字母:str.isalpha()
    是否全数字:str.isdigit()
    是否全小写:str.islower()
    是否全大写:str.isupper()
    str='python String function'
    print '%s startwith t=%s' % (str,str.startswith('t'))
    print '%s endwith d=%s' % (str,str.endswith('d'))
    print '%s isalnum=%s' % (str,str.isalnum())
    str='pythonStringfunction'
    print '%s isalnum=%s' % (str,str.isalnum())
    print '%s isalpha=%s' % (str,str.isalpha())
    print '%s isupper=%s' % (str,str.isupper())
    print '%s islower=%s' % (str,str.islower())
    print '%s isdigit=%s' % (str,str.isdigit())
    str='3423'
    print '%s isdigit=%s' % (str,str.isdigit())

    还有其他常见的Python字符串处理 函数的话不定期更新。

    展开全文
  • matlab中 str2num 函数与 str2double 函数的区别

    万次阅读 多人点赞 2018-09-12 17:03:59
    str2num 函数与 str2double 函数的相同点与不同点 1. 相同点:当str为一个含数字的字符串时,str2num 函数与 str2double 函数一样。 如: 2. 不同点:当str为多个字符串构成的数组时,str2num 函数与 str2...

    str2num 函数与 str2double 函数的相同点与不同点

    1. 相同点: 当str为一个含数字的字符串时, str2num 函数与 str2double 函数一样。

        如:

            

    2. 不同点:当str为多个字符串构成的数组时, str2num 函数与 str2double 函数有区别。

        如:

           

        不同点:当str为非数字字符时,str2num 函数与 str2double 函数有区别。

         如:

             

    展开全文
  • matlab函数int2str, num2str, str2num,mat2str

    千次阅读 2019-08-31 23:18:25
    函数名:int2str 功能:将整数值转换为字符串 输入格式:str = int2str(N) 备注:就将该值四舍五入后转换为字符串,接受向量和矩阵输入。 如果是向量和矩阵输入,列数字之间会补加两个空格。 函数名:num2str...
  • Python str与repr方法的区别

    万次阅读 2019-12-09 10:56:39
    str:用户易读的表达式 repr:解释器易读的表达式,可以观察转义字符 """ s = 'hello Python\n' print(str(s)) # hello Python print(repr(s)) # 'hello Python\n' data = 3 / 7 print(str(data)) # 0....
  • python的学习使用中遇到了这个错误:can only concatenate str (not "int") to str; 上网查过后发现是因为我没有做数据类型的转换,python并不能像java一样,在做拼接的时候自动把类型转换为string类型; ...
  • strstr(str1,str2) 函数

    万次阅读 多人点赞 2018-09-26 14:03:13
    可能有的人还没听过strstr函数,个人认为这个一个很实用的函数,strstr(str1,str2) 函数是字符串处理函数之一,位于头文件 “string.h”中。对于处理字符串的一些问题有很大的帮助。 定义:strstr(str1,str2) 函数...
  • str1==str2和str1.equals(str2)的问题

    千次阅读 2017-11-18 14:41:03
    问题: @Test public void stringTest(){ String str1 = "hello"; String str2 = "hello"; System.out.println("str1.equals(str2) : "+ str1.equals(str2)); System.out.println(
  • strstr(str1,str2)函数使用时注意事项

    万次阅读 多人点赞 2018-05-28 12:17:34
    可能有的人还没听过strstr函数,个人认为这个一个很实用的函数,strstr(str1,str2) 函数是字符串处理函数之一,位于头文件 “string.h”中。对于处理字符串的一些问题有很大的帮助。定义:strstr(str1,str2) 函数...
  • Stringstr = str和String str = new String(str)的区别 String str1 = “str1”: 1、 在栈中创建str1的引用。 2、 去常量池中查看是否有相同Unicode编码的字符串常量。如果有将str1指向该常量,如果没有则创建...
  • str与bytes的区别【python爬虫小课堂】

    万次阅读 2020-05-23 10:38:52
    bytes bytes对象只负责以二进制字节序列的形式记录所需记录的...type 'str'> >>> type('xxxxx') <type 'str'> Python3 中 >>> type(b'xxxxx') <class 'bytes'> >>> type
  • string中c_str()的用法

    万次阅读 多人点赞 2018-09-13 21:54:27
    这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针。 比如:...
  • 1、str 2 date 头文件 import datetime str=&quot;20180805&quot; str2date=datetime.datetime.strptime(str,&quot;%Y%m%d&quot;)#字符串转化为date形式 date2str=str2date.strftime(&...
  • python str转list str带[]

    千次阅读 2020-06-30 23:32:22
    1、str带[],长得跟list一样时,格式[1,2,3,4,5] 有些变量打印出来像list,不type()一下根本分不出来 直接按list取最后一个数,哈哈了 list_str= '[1,2,3,4,5]' print(list_str[-1]) # ] 那就str转list吧,常规方法...
  • python byte转strstr转byte

    千次阅读 2019-04-16 00:14:52
    在涉及到网络传输的时候,数据需要从str转换成btye才能进行传输。 python byte 转 strstr 转 byte 其实很简单: 原理图如下: 案例: a: str = "你好!" b: bytes = a.encode('gbk') print(b) c: str = b....
  • Python str方法

    万次阅读 多人点赞 2018-04-11 21:14:16
    Python str常用方法 一、字母处理 1、全部大写:str.upper() str1 = 'nostalgia' str2 = str1.upper() print(str2) NOSTALGIA 2、全部小写:str.lower() str1 = 'NOSTALGIA' str2 = str1.lower() ...
  • 给定string str1和string str2,编写一个库函数,返回str2在str1中的位置。 如:str1为"ABCDLANCEXYZ",str2为"LANCE",则返回位置5。如果没有找到,返回-1。(起始位置从1开始) // findSubStrPosition.c #...
  • python bytes和str转换

    万次阅读 2019-03-21 14:19:04
    bytes 转换为 str str(b,encoding="utf-8") str(b,encoding="gbk") encoding中写的是原来byte变量的编码什么类型的编码的字节就要转换成什么类型的编码的字符串 通过 import chardet ret = chardet.detect...
  • python语句中str_python中str是什么意思

    千次阅读 2021-01-30 02:47:32
    在python中str的意思:1、表示字符串类,可以使用引号('或")来创建字符串,例“str='Hello World!'”;2、表示str()函数,将对象转化为适于人阅读的形式,语法是“str(object='')”,返回一个对象的string格式。1、...
  • 成功解决TypeError: a bytes-like object is required, not 'str'

    万次阅读 多人点赞 2018-11-07 22:31:18
    成功解决TypeError: a bytes-like object is required, not 'str' 目录 解决问题 解决思路 解决方法 解决问题 TypeError: a bytes-like object is required, not 'str' 解决思路 问题出在...
  • /** * Created by lxw, liwei4939@126.... * 给定字符串str1和str2,求str1中子串含有str2所有字符的最小子串长度 */ public class minSubstring { public int minLength(String str1, String str2){ if(str1
  • 编写函数void mcpy(char *str1,char *str2),其功能是查找字符串str1和str2中的第一组相同的字符,找到后,保留str1字符串中位于该字符之前部分(不包含该字符),和str2字符串中位于该字符之后的部分(不包含该字符...
  • C语言 | char *str与char str[]的区别

    千次阅读 2019-08-01 09:59:38
    C语言中没有特定的字符串类型,...(1)char str[] = "happy"; (2)char *str = "happy"; 这种方式有什么不同呢? 示例一:字符数组 #include <stdio.h> int main(void) { char str[20] = "hello"; str[...
  • python中list和str互相转换

    万次阅读 多人点赞 2019-06-27 10:13:43
    字符串str 第一种情况,如果list [ ] 中包含的元素是str " "类型。 使用下面方法,举例。 nums=['ww','22','2s'] print("".join(nums)) 运行结果: ww222s 第二种情况,如果列表 [ ] 里面含有的元素是整形int ,...
  • python str转unicode和unicode转str

    千次阅读 2018-12-11 19:22:05
    str转Unicode: strtypeE.decode('gbk') unicode转str: unicodetypeE.encode('gbk') 有时程序会报这样的错误: Unicode equal comparison failed to convert both arguments to Unicode - interpreting ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 397,472
精华内容 158,988
关键字:

str