Làm cách nào để loại bỏ u ký tự khỏi từ điển sau?u chars from the following dictionary?
{u'name': u'A', u'primary_key': 1}
Dữ liệu này đến từ truy vấn Mongo Database
find []find[] query
Vì vậy, nó trông giống như
{'name': 'A', 'primary_key': 1}
Đã hỏi ngày 12 tháng 11 năm 2011 lúc 0:56Nov 12, 2011 at 0:56
Daydreamerdaydreamerdaydreamer
83.1K180 Huy hiệu vàng434 Huy hiệu bạc702 Huy hiệu đồng180 gold badges434 silver badges702 bronze badges
5
Các ký tự u
mà bạn đang thấy đơn giản có nghĩa là chúng là chuỗi Unicode.
Nếu bạn không muốn chúng trở thành Unicode, bạn có thể mã hóa chúng như một thứ khác, chẳng hạn như ASCII.
>>> s = u'hi!'
>>> s
u'hi'
>>> s2 = s.encode['ascii']
>>> s2
'hi'
Đã trả lời ngày 12 tháng 11 năm 2011 lúc 1:00Nov 12, 2011 at 1:00
David Alberdavid AlberDavid Alber
17.1k6 Huy hiệu vàng64 Huy hiệu bạc70 Huy hiệu đồng6 gold badges64 silver badges70 bronze badges
0
Nếu bạn chỉ muốn chuyển đổi Dict thành chuỗi dữ liệu JSON, bạn có thể làm:
>>> from bson.json_util import dumps
>>> data = {u'name': u'A', u'primary_key': 1}
>>> dumps[data]
'{"name": "A", "primary_key": 1}'
Đã trả lời ngày 22 tháng 12 năm 2016 lúc 9:16Dec 22, 2016 at 9:16
Bạn cần để PSYCOPG2 mã hóa các chuỗi của mình, không cố gắng chèn các chuỗi python-syntax vào các truy vấn của bạn RAW-bạn đang đặt mình có nguy cơ xảy ra sự cố tiêm SQL nếu một số chuỗi chứa các ký tự mà SQL sẽ giải thích khi kết thúc chuỗi. Bạn nên chuyển các tham số cho psycopg2 như thế này:
cursor.execute['INSERT INTO person [name, town] VALUES [%s %s]', [name, town]]
Bởi vì PsyCOPG2 biết rằng cú pháp SQL rất, rất tốt, nó sẽ rời khỏi các ký tự ____99 vì nó nhận được chuỗi
{'name': 'A', 'primary_key': 1}
1 và {'name': 'A', 'primary_key': 1}
2 của bạn và thoát khỏi chúng theo cách chính xác mà câu lệnh SQL này cần.Đã trả lời ngày 12 tháng 11 năm 2011 lúc 1:29Nov 12, 2011 at 1:29
Brandon Rhodesbrandon RhodesBrandon Rhodes
79.3K16 Huy hiệu vàng105 Huy hiệu bạc142 Huy hiệu đồng16 gold badges105 silver badges142 bronze badges
Như Sven đã đề cập trong nhận xét của mình, u
là một dấu hiệu của các loại được thể hiện trong MongoDB [thực ra là vì JSON được xác định là sử dụng Unicode].
Thực tế này phải hoàn toàn minh bạch đối với bạn, trên thực tế, bạn có thể sử dụng các giá trị
{'name': 'A', 'primary_key': 1}
4 và {'name': 'A', 'primary_key': 1}
5 có thể thay thế cho nhau trong các dicts.>>> 'foo' in {u'foo': 5}
True
>>> {u'foo': 5}['foo']
5
>>>
Đã trả lời ngày 12 tháng 11 năm 2011 lúc 1:02Nov 12, 2011 at 1:02
Bạn không thể đơn giản loại bỏ U khỏi các chuỗi, vì nó tượng trưng cho các chuỗi nằm trong Unicode.
Một giải pháp là sử dụng chức năng mã hóa:
old_strings = {u'name':u'A', u'primary_key':1}
newstrings = {}
for k in old_strings.keys[]:
newtsrings[k] = old_strings[k].encode['ascii','ignore']
Điều này sẽ chỉ bỏ qua các ký tự không phải ASCII.
Đã trả lời ngày 12 tháng 11 năm 2011 lúc 1:03Nov 12, 2011 at 1:03
StellaratorstellaratorStellarator
4412 Huy hiệu bạc8 Huy hiệu đồng2 silver badges8 bronze badges
Tương tự như những gì đã được đăng, nhưng sử dụng thư viện JSON.
>>> import json
>>> udata = {u'name': u'A', u'primary_key': 1}
>>> json.dumps[udata]
'{"name": "A", "primary_key": 1}'
Đã trả lời ngày 4 tháng 2 năm 2020 lúc 12:14Feb 4, 2020 at 12:14
MHCKMHCKmhck
7011 Huy hiệu vàng9 Huy hiệu bạc18 Huy hiệu đồng1 gold badge9 silver badges18 bronze badges