Dưới đây là đầu ra được lưu trữ trong biến STR, tôi muốn trích xuất giá trị cardinality của bất cứ thứ gì, tôi đã trích xuất nó bằng cách đơn giản
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
0 nhưng mỗi lần tôi phải thay đổi giá trị chuỗi nếu giá trị cardinality sẽ tăng hoặc giảm.Output:
{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}
Được lưu trữ trong str:
str = response.text
Đầu ra dự kiến:
Active: 483
Hỏi ngày 14 tháng 9 năm 2018 lúc 8:01Sep 14, 2018 at 8:01
3
Bạn có thể chuyển chuỗi của mình dưới dạng JSON để có được từ điển, sau đó chỉ cần đọc ra giá trị:
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
Đã trả lời ngày 14 tháng 9 năm 2018 lúc 8:05Sep 14, 2018 at 8:05
101101101
8.1763 Huy hiệu vàng38 Huy hiệu bạc65 Huy hiệu Đồng3 gold badges38 silver badges65 bronze badges
1
Sử dụng AST:
>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
>>> import ast
>>> 'Active: %s'%ast.literal_eval[s]['cardinality']
'Active: 483'
>>>
Như @101 đã nói cũng có thể sử dụng
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
1:>>> import json
>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
>>> 'Active: %s'%json.loads[s]['cardinality']
'Active: 483'
>>>
Đã trả lời ngày 14 tháng 9 năm 2018 lúc 8:04Sep 14, 2018 at 8:04
U12-ForwardU12-ForwardU12-Forward
66.6K13 Huy hiệu vàng78 Huy hiệu bạc97 Huy hiệu đồng13 gold badges78 silver badges97 bronze badges
Có 2 cách:
1.
In [10]: import ast
In [11]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [12]: ast.literal_eval[s]
In [13]: %timeit ast.literal_eval[s]['cardinality']
10000 loops, best of 3: 29.4 µs per loop
2.
In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
Vì vậy, bạn nên sử dụng
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
2 vì nó tương đối nhanh hơn import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
3Đã trả lời ngày 14 tháng 9 năm 2018 lúc 8:51Sep 14, 2018 at 8:51
Vishvajit pathakvishvajit pathakVishvajit Pathak
3.0431 Huy hiệu vàng21 Huy hiệu bạc16 Huy hiệu đồng1 gold badge21 silver badges16 bronze badges
Bài viết này mô tả cách trích xuất một chuỗi con từ một chuỗi trong Python. Bạn có thể trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự hoặc với các mẫu biểu thức chính quy.
- Trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự
- Trích xuất một ký tự bằng chỉ mục
- Trích xuất một chuỗi con bằng cách cắt
- Trích xuất dựa trên số lượng ký tự
- Trích xuất một chuỗi con với các biểu thức thông thường:
4,import json s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}' d = json.loads[s] print[d['cardinality']] # 483
5import json s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}' d = json.loads[s] print[d['cardinality']] # 483
- Ví dụ mẫu biểu thức thông thường
- Các mẫu giống như ký tự đại diện
- Tham lam và không tham lam
- Trích xuất một phần của mẫu với dấu ngoặc đơn
- Khớp với bất kỳ ký tự nào
- Khớp với đầu/kết thúc của chuỗi
9 khớp với sự khởi đầu của chuỗi vàprint[s[-1]] # e print[s[-5]] # a
00 khớp với phần cuối của chuỗi.str = response.text
- Case-insensitive
Sử dụng
str = response.text
01 để trích xuất một chuỗi con phù hợp với một trong nhiều mẫu. Ví dụ: đối với các mẫu biểu thức thông thường str = response.text
02 và str = response.text
03, bạn có thể viết str = response.text
04.- Mô-đun RE là nhạy cảm trường hợp theo mặc định. Đặt đối số
05 thànhstr = response.text
06 để thực hiện không nhạy cảm trường hợp.str = response.text
Trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự
Trích xuất một ký tự bằng chỉ mục
s = 'abcde'
print[s[0]]
# a
print[s[4]]
# e
Trích xuất một chuỗi con bằng cách cắt
print[s[-1]]
# e
print[s[-5]]
# a
Trích xuất dựa trên số lượng ký tự
str = response.text
0Trích xuất một chuỗi con với các biểu thức thông thường:
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
4, import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
5str = response.text
1Ví dụ mẫu biểu thức thông thường
str = response.text
2Các mẫu giống như ký tự đại diện
str = response.text
3Tham lam và không tham lam
str = response.text
4Trích xuất một phần của mẫu với dấu ngoặc đơn
str = response.text
5Trích xuất bởi nhiều mẫu
- Nếu bạn muốn thay thế một chuỗi con bằng một chuỗi khác, hãy xem bài viết sau.
Thay thế các chuỗi trong python [thay thế, dịch, re.sub, re.sub]
Bạn có thể nhận được một ký tự ở vị trí mong muốn bằng cách chỉ định một chỉ mục trong
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
6. Các chỉ mục bắt đầu với import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
7 [lập chỉ mục dựa trên không].Bạn có thể chỉ định một vị trí lạc hậu với các giá trị âm.
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
8 đại diện cho nhân vật cuối cùng.str = response.text
6Một lỗi được nêu ra nếu chỉ số không tồn tại được chỉ định.
- Bạn có thể trích xuất một chuỗi con trong phạm vi
9 vớiimport json s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}' d = json.loads[s] print[d['cardinality']] # 483
0. Nếu>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}' >>> import ast >>> 'Active: %s'%ast.literal_eval[s]['cardinality'] 'Active: 483' >>>
1 bị bỏ qua, phạm vi là từ đầu và nếu>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}' >>> import ast >>> 'Active: %s'%ast.literal_eval[s]['cardinality'] 'Active: 483' >>>
2 bị bỏ qua, phạm vi sẽ đến cuối cùng.>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}' >>> import ast >>> 'Active: %s'%ast.literal_eval[s]['cardinality'] 'Active: 483' >>>
Bạn cũng có thể sử dụng các giá trị âm.
str = response.text
7>>> import json
>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
>>> 'Active: %s'%json.loads[s]['cardinality']
'Active: 483'
>>>
8 khớp với một ký tự chữ số và >>> import json
>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
>>> 'Active: %s'%json.loads[s]['cardinality']
'Active: 483'
>>>
9 khớp với một hoặc nhiều lần lặp lại của mẫu trước. Do đó, In [10]: import ast
In [11]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [12]: ast.literal_eval[s]
In [13]: %timeit ast.literal_eval[s]['cardinality']
10000 loops, best of 3: 29.4 µs per loop
0 khớp với một hoặc nhiều chữ số liên tiếp.Do Backslash
In [10]: import ast
In [11]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [12]: ast.literal_eval[s]
In [13]: %timeit ast.literal_eval[s]['cardinality']
10000 loops, best of 3: 29.4 µs per loop
1 được sử dụng trong các chuỗi đặc biệt biểu thức thông thường như >>> import json
>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
>>> 'Active: %s'%json.loads[s]['cardinality']
'Active: 483'
>>>
8, nên việc sử dụng một chuỗi thô là thuận tiện bằng cách thêm In [10]: import ast
In [11]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [12]: ast.literal_eval[s]
In [13]: %timeit ast.literal_eval[s]['cardinality']
10000 loops, best of 3: 29.4 µs per loop
3 trước >>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
>>> import ast
>>> 'Active: %s'%ast.literal_eval[s]['cardinality']
'Active: 483'
>>>
4 hoặc In [10]: import ast
In [11]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [12]: ast.literal_eval[s]
In [13]: %timeit ast.literal_eval[s]['cardinality']
10000 loops, best of 3: 29.4 µs per loop
5.- Dây thô trong Python
Khi một chuỗi khớp với mẫu,
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
4 sẽ trả về một đối tượng khớp. Bạn có thể nhận phần phù hợp dưới dạng chuỗi In [10]: import ast
In [11]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [12]: ast.literal_eval[s]
In [13]: %timeit ast.literal_eval[s]['cardinality']
10000 loops, best of 3: 29.4 µs per loop
7 bằng phương thức In [10]: import ast
In [11]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [12]: ast.literal_eval[s]
In [13]: %timeit ast.literal_eval[s]['cardinality']
10000 loops, best of 3: 29.4 µs per loop
8 của đối tượng khớp.str = response.text
8Như trong ví dụ trên,
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
4 chỉ trả về đối tượng khớp của phần đầu tiên, ngay cả khi có nhiều phần phù hợp.import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
5 Trả về tất cả các phần phù hợp như một danh sách các chuỗi.str = response.text
9Ví dụ mẫu biểu thức thông thường
Phần này trình bày một số ví dụ về các mẫu biểu thức chính quy với các ký tự meta/trình tự đặc biệt.
Các mẫu giống như ký tự đại diện
In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
1 khớp với bất kỳ ký tự đơn nào ngoại trừ một dòng mới và In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
2 khớp với số lần lặp lại của mẫu trước.Ví dụ:
In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
3 khớp với chuỗi bắt đầu với In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
4 và kết thúc bằng In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
5. Vì In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
2 khớp với các lần lặp lại bằng không, nó cũng phù hợp với In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
7.Active: 483
0>>> import json
>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
>>> 'Active: %s'%json.loads[s]['cardinality']
'Active: 483'
>>>
9 khớp với một hoặc nhiều lần lặp lại của mẫu trước. In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
9 không khớp với In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
7.Active: 483
1
s = 'abcde'
print[s[0]]
# a
print[s[4]]
# e
1 khớp với số không hoặc một mẫu trước. Trong trường hợp s = 'abcde'
print[s[0]]
# a
print[s[4]]
# e
2, nó khớp với In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
7 và chuỗi chỉ có một ký tự giữa In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
4 và In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
5.Active: 483
2Tham lam và không tham lam
In [14]: import json
In [15]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [16]: %timeit json.loads[s]['cardinality']
100000 loops, best of 3: 5.73 µs per loop
2, >>> import json
>>> s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
>>> 'Active: %s'%json.loads[s]['cardinality']
'Active: 483'
>>>
9 và s = 'abcde'
print[s[0]]
# a
print[s[4]]
# e
1 đều là những trận đấu tham lam, phù hợp với văn bản càng nhiều càng tốt. s = 'abcde'
print[s[0]]
# a
print[s[4]]
# e
9, print[s[-1]]
# e
print[s[-5]]
# a
0 và print[s[-1]]
# e
print[s[-5]]
# a
1 là các trận đấu không màu xanh lá cây, tối thiểu, khớp càng ít ký tự càng tốt.Active: 483
3Nếu bạn đặt một phần của một mẫu biểu thức thông thường trong ngoặc đơn
print[s[-1]]
# e
print[s[-5]]
# a
2, bạn có thể trích xuất một chuỗi con trong phần đó.Active: 483
4Nếu bạn muốn phù hợp với dấu ngoặc đơn
print[s[-1]]
# e
print[s[-5]]
# a
2 như các nhân vật, hãy thoát chúng bằng dấu gạch chéo ngược In [10]: import ast
In [11]: s='{"cardinality":483,"timestamp":15369087280,"deltas":{"week_over_week":{"delta_fraction":0.047722318876,"last_week_value":146}}}'
In [12]: ast.literal_eval[s]
In [13]: %timeit ast.literal_eval[s]['cardinality']
10000 loops, best of 3: 29.4 µs per loop
1.Active: 483
5Khớp với bất kỳ ký tự nào
Việc kèm theo một chuỗi với
import json
s = '{"cardinality": 483, "timestamp": 15369087280, "deltas": {"week_over_week": {"delta_fraction": 0.047722318876, "last_week_value": 146}}}'
d = json.loads[s]
print[d['cardinality']]
# 483
6 khớp với bất kỳ một trong các ký tự trong chuỗi.Nếu bạn kết nối các điểm mã Unicode liên tiếp với
print[s[-1]]
# e
print[s[-5]]
# a
6, chẳng hạn như print[s[-1]]
# e
print[s[-5]]
# a
7, tất cả các ký tự giữa chúng đều được bảo hiểm. Ví dụ, print[s[-1]]
# e
print[s[-5]]
# a
7 khớp với bất kỳ một ký tự nào của bảng chữ cái viết thường.Active: 483
6Khớp với đầu/kết thúc của chuỗi
print[s[-1]]
# e
print[s[-5]]
# a
9 khớp với sự khởi đầu của chuỗi và str = response.text
00 khớp với phần cuối của chuỗi.Active: 483
7Sử dụng
str = response.text
01 để trích xuất một chuỗi con phù hợp với một trong nhiều mẫu. Ví dụ: đối với các mẫu biểu thức thông thường str = response.text
02 và str = response.text
03, bạn có thể viết str = response.text
04.Active: 483
8Case-insensitive
Mô-đun RE là nhạy cảm trường hợp theo mặc định. Đặt đối số
str = response.text
05 thành str = response.text
06 để thực hiện không nhạy cảm trường hợp.Active: 483
9