红唇如刀 发表于 2020-7-13 17:20:57

关于分割字符串的一个问题

我想从字符串:
{"code":20000,"message":"OK","data":}里面
把17412529,19488113,16997081,20263570这些项目提取出来,
其它的全部切掉,用split如何一步实现?
或者用什么字符串方法能实现?
我自己试了试,如果想实现,需要不断的切片才行啊,感觉我的方法没有用对。
求路过的大侠出手相助


str1 = '{"code":20000,"message":"OK","data":}'

str2 = str1.split(',')
str3 = str1.split('[')

print(str2)
print('----------------------------------------------------------')
print('----------------------------------------------------------')
print(str3)

hrp 发表于 2020-7-13 17:20:58

你要的是字符串还是数字?

数字:
str1 = '{"code":20000,"message":"OK","data":}'
print(eval(str1)['data'])

字符串:
str1 = '{"code":20000,"message":"OK","data":}'
print(])

红唇如刀 发表于 2020-7-13 17:49:37

本帖最后由 红唇如刀 于 2020-7-13 18:05 编辑

搞定了


str4 = str1.split('[').split(']').split(',')

红唇如刀 发表于 2020-7-13 18:05:47

红唇如刀 发表于 2020-7-13 17:49
搞定了

其实本质还是切了又切,只不过放到一个句子里面了

_2_ 发表于 2020-7-13 20:36:19

本帖最后由 _2_ 于 2020-7-13 20:46 编辑

红唇如刀 发表于 2020-7-13 18:05
其实本质还是切了又切,只不过放到一个句子里面了

直接用 json.loads(str1) 也许就可以转换成 dict 了吧……

Twilight6 发表于 2020-7-13 22:14:03


这种字符串字典的,用内置函数 eval 转为字典再好不过了了,然后你要读取的是 data 键的内容,直接读取对应键就好了(如果你一定要使用 split 那就算了哈):

string = '{"code":20000,"message":"OK","data":}'
temp = eval(string)
print(temp['data'])

赚小钱 发表于 2020-7-13 22:21:18

import json

a ='{"code":20000,"message":"OK","data":}'
value = json.loads(a)
for val in value['data']
    print(val)

红唇如刀 发表于 2020-7-13 23:25:20

_2_ 发表于 2020-7-13 20:36
直接用 json.loads(str1) 也许就可以转换成 dict 了吧……

谢谢指导

红唇如刀 发表于 2020-7-13 23:25:51

hrp 发表于 2020-7-13 20:53
你要的是字符串还是数字?

数字:


谢谢指导

红唇如刀 发表于 2020-7-13 23:26:24

赚小钱 发表于 2020-7-13 22:21


谢谢指导

_2_ 发表于 2020-7-14 07:58:09

赚小钱 发表于 2020-7-13 22:21


正解
为什么我没想到 eval() 捏……
页: [1]
查看完整版本: 关于分割字符串的一个问题