簡體   English   中英

如何在 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"}'

我想打印關鍵字“名稱”旁邊的所有字母,這樣我的 output 應該是

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)

output

waqas

首先,您需要使用 python 中的 substring 從字符串中刪除 b ,將字符串轉換為正確的JSON格式,假設您有一個變量x

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM