|
1 | 1 | # EXAMPLE: py_home_json |
| 2 | +# BINDER_ID python-py_home_json |
2 | 3 | """ |
3 | 4 | JSON examples from redis-py "home" page" |
4 | 5 | https://redis.io/docs/latest/develop/connect/clients/python/redis-py/#example-indexing-and-querying-json-documents |
|
15 | 16 | import redis.exceptions |
16 | 17 | # STEP_END |
17 | 18 |
|
18 | | -# STEP_START connect |
19 | | -r = redis.Redis(decode_responses=True) |
20 | | -# STEP_END |
21 | | - |
22 | | -# REMOVE_START |
23 | | -try: |
24 | | - r.ft("idx:users").dropindex(True) |
25 | | -except redis.exceptions.ResponseError: |
26 | | - pass |
27 | | - |
28 | | -try: |
29 | | - r.ft("hash-idx:users").dropindex(True) |
30 | | -except redis.exceptions.ResponseError: |
31 | | - pass |
32 | | - |
33 | | -r.delete("user:1", "user:2", "user:3", "huser:1", "huser:2", "huser:3") |
34 | | -# REMOVE_END |
35 | 19 | # STEP_START create_data |
36 | 20 | user1 = { |
37 | 21 | "name": "Paul John", |
|
55 | 39 | } |
56 | 40 | # STEP_END |
57 | 41 |
|
| 42 | +# STEP_START connect |
| 43 | +r = redis.Redis(decode_responses=True) |
| 44 | +# STEP_END |
| 45 | + |
| 46 | +# STEP_START cleanup_json |
| 47 | +try: |
| 48 | + r.ft("idx:users").dropindex(True) |
| 49 | +except redis.exceptions.ResponseError: |
| 50 | + pass |
| 51 | + |
| 52 | +r.delete("user:1", "user:2", "user:3") |
| 53 | +# STEP_END |
| 54 | + |
58 | 55 | # STEP_START make_index |
59 | 56 | schema = ( |
60 | 57 | TextField("$.name", as_name="name"), |
|
69 | 66 | ) |
70 | 67 | ) |
71 | 68 | # STEP_END |
72 | | -# Tests for 'make_index' step. |
73 | 69 | # REMOVE_START |
74 | 70 | assert indexCreated |
75 | 71 | # REMOVE_END |
|
79 | 75 | user2Set = r.json().set("user:2", Path.root_path(), user2) |
80 | 76 | user3Set = r.json().set("user:3", Path.root_path(), user3) |
81 | 77 | # STEP_END |
82 | | -# Tests for 'add_data' step. |
83 | 78 | # REMOVE_START |
84 | 79 | assert user1Set |
85 | 80 | assert user2Set |
|
94 | 89 | print(findPaulResult) |
95 | 90 | # >>> Result{1 total, docs: [Document {'id': 'user:3', ... |
96 | 91 | # STEP_END |
97 | | -# Tests for 'query1' step. |
98 | 92 | # REMOVE_START |
99 | 93 | assert str(findPaulResult) == ( |
100 | 94 | "Result{1 total, docs: [Document {'id': 'user:3', 'payload': None, " |
|
111 | 105 | print(citiesResult) |
112 | 106 | # >>> [Document {'id': 'user:1', 'payload': None, ... |
113 | 107 | # STEP_END |
114 | | -# Tests for 'query2' step. |
115 | 108 | # REMOVE_START |
116 | 109 | citiesResult.sort(key=lambda doc: doc['id']) |
117 | 110 |
|
|
130 | 123 | print(aggResult) |
131 | 124 | # >>> [['city', 'London', 'count', '1'], ['city', 'Tel Aviv', 'count', '2']] |
132 | 125 | # STEP_END |
133 | | -# Tests for 'query3' step. |
134 | 126 | # REMOVE_START |
135 | 127 | aggResult.sort(key=lambda row: row[1]) |
136 | 128 |
|
|
139 | 131 | ) |
140 | 132 | # REMOVE_END |
141 | 133 |
|
| 134 | +# STEP_START cleanup_hash |
| 135 | +try: |
| 136 | + r.ft("hash-idx:users").dropindex(True) |
| 137 | +except redis.exceptions.ResponseError: |
| 138 | + pass |
| 139 | + |
| 140 | +r.delete("huser:1", "huser:2", "huser:3") |
| 141 | +# STEP_END |
| 142 | + |
142 | 143 | # STEP_START make_hash_index |
143 | 144 | hashSchema = ( |
144 | 145 | TextField("name"), |
|
0 commit comments