如何在 python 的关键字后打印?

how to print after the keyword from python?

我在 python

中有以下字符串
b'{"personId":"65a83de6-b512-4410-81d2-ada57f18112a","persistedFaceIds":["792b31df-403f-4378-911b-8c06c06be8fa"],"name":"waqas"}'

我想打印关键字“name”旁边的所有字母,这样我的输出应该是

waqas 

注意 waqas 可以更改为任何数字,所以我想使用字符串操作或正则表达式在关键字名称旁边打印任何名称?

首先你需要解码字符串,因为它是二进制的b。然后用literal eval做字典,然后就可以通过key

访问了
>>> s = b'{"personId":"65a83de6-b512-4410-81d2-ada57f18112a","persistedFaceIds":["792b31df-403f-4378-911b-8c06c06be8fa"],"name":"waqas"}'
>>> import ast
>>> ast.literal_eval(s.decode())['name']
'waqas'

您可能应该以与现在不同的方式将数据读入程序。

如果我假设您的数据在 JSON 文件中,请使用内置 json 模块尝试如下操作:

import json

with open(filename) as fp:
    data = json.load(fp)    
print(data['name'])

您可以使用 json.loads()

将字符串转换为字典
import json
mystring = b'{"personId":"65a83de6-b512-4410-81d2-ada57f18112a","persistedFaceIds":["792b31df-403f-4378-911b-8c06c06be8fa"],"name":"waqas"}'
mydict = json.loads(mystring)
print(mydict["name"])
# output 'waqas'

如果您想要一种更算法化的方法来提取 name 的值:

s = b'{"personId":"65a83de6-b512-4410-81d2-ada57f18112a",\
"persistedFaceIds":["792b31df-403f-4378-911b-8c06c06be8fa"],\
"name":"waqas"}'

s = s.decode("utf-8")

key = '"name":"'
start = s.find(key) + len(key)
stop = s.find('"', start + 1)

extracted_string = s[start : stop]
print(extracted_string)

输出

waqas

首先,您需要通过使用 python 中的子字符串从字符串中删除 b 来将字符串转换为适当的 JSON 格式,假设您有一个变量 x :

import json
x = x[1:];
dict = json.loads(x) //convert JSON string into dictionary
print(dict["name"])