Python\xa
khi thêm Show tôi nghĩ ra cách để bỏ qua dòng này nếu lỗi này xuất hiện dưới dạng một tính năng được thêm vào trong mã chứ không phải lỗi cơ bản này ------------------------------ Tin nhắn gốc @Mohamed El Bagory https. //www. ibm. com/support/pages/node/6193791?myns=swgother&mynp=OCSS5E58&mync=E&cm_sp=swgother-_-OCSS5E58-_-E Nếu không, hãy xử lý nó trong mã chức năng bằng các mô-đun Python gốc ------------------------------ Tin nhắn gốc là vấn đề vẫn còn tồn tại? Cảm ơn trước ------------------------------ Tin nhắn gốc Bằng cách nào đó, ngày hôm qua tôi đã hoàn thành xuất hiện trong các sự cố Lưu ý biểu tượng bảng Anh ví dụ từ điển my_dict = {u'related': {u'type': u'email_subject', u'value': u'Win a \xa3100 gift card by telling Sky what you think!'}} Bằng cách chờ đợi câu trả lời, tôi nghĩ sẽ thử đoạn mã khác này. def myprint(d): Điều này in chính xác "£" trong ghi chú (thay thế "print()" bằng "sự cố. Thêm ghi chú()") @Jared Mã Fagel mà bạn có thể thấy trong quá trình xử lý hậu kỳ ban đầu được tạo trong mã cục bộ của tôi (một tập lệnh python ngoại tuyến), khi tôi kiểm tra từ điển "bị lỗi" đã trả về kết quả tương tự (không có lỗi như Resilient nhưng với \xa3 hoặc \ . Ngoài ra, đối với nhu cầu nội bộ, có một phần mã cần được xử lý hậu kỳ Về Khả năng phục hồi, có thể chỉ định mã hóa khác, từ ascii đến utf-8, của bộ xử lý nội bộ không? CHỈNH SỬA. Tôi đã thử lại với đoạn mã trên trong toàn bộ từ điển của mình và vẫn không hoạt động, hãy tiếp tục xem \xa3 trong bản in ------------------------------ Tin nhắn gốc Thay vào đó, bạn có thể di chuyển mã này vào chính mã chức năng hoặc một chức năng sử dụng bên trong gói không? Lý do của vấn đề mã hóa không trực tiếp là do Python 2 (mặc dù Python 2 không mặc định là ASCII, trong đó Python 3 mặc định là UTF-8). Resilient sử dụng jython trên back-end cho các tập lệnh và chúng có thể đã chỉ định ASCII làm loại mã hóa Tôi không biết chính xác jython được triển khai như thế nào, nhưng tôi tưởng tượng rằng nó có thể đã được thay đổi như chúng ta thấy ở đây ------------------------------ Tin nhắn gốc Cảm ơn vì câu trả lời Sử dụng unicode() không phải là một tùy chọn khả thi miễn là tôi có từ điển ở cấp mã. Nhưng dù sao thì tôi cũng đã thử, bằng cách sử dụng json lần đầu tiên. dumps() và sau đó áp dụng unicode(str, "utf-8). Đây là kết quả bây giờ {"loại". "email_subject", "giá trị". "Giành được thẻ quà tặng \u00a3100 bằng cách cho Sky biết suy nghĩ của bạn. "} Tôi muốn tránh quan tâm đến từng giá trị của chính tả của mình để có kết quả mong muốn vì bản thân từ điển rất lớn và có thể đó không phải là một giải pháp có lập trình Những gì tôi đã làm sau khi đọc câu trả lời của bạn bằng ngôn ngữ là thế này import json Tôi vẫn chưa thử bất cứ điều gì mới (ngoài những gì đã làm trước đó). Tại thời điểm này, tôi không biết liệu có đúng không khi mong đợi biểu tượng bảng Anh trong mã ngoại tuyến/ở cấp chức năng Cuối cùng, điều bắt buộc là phải có một từ điển trong đầu vào (vì vậy trong đầu ra từ hàm) trong quá trình hậu kỳ vì toàn bộ mã trong hậu kỳ dựa trên một lệnh (và nó đã hoạt động -. ) - với các ký tự bình thường) Để trả lời @Ben Lurie, tôi đã cố gắng in phản hồi chức năng của mình cho ứng dụng. log nhưng nó vẫn báo lỗi (master_response là từ điển của tôi)
def myprint(d):0 Trước khi kiểm tra tôi đã thực hiện ở trên, giá trị được ghi lại bình thường Đây là một phần chính của mã tôi sử dụng trong tập lệnh hậu xử lý của mình cisco_sightings = results["value"]["cisco_sightings"] Tôi nghĩ phần mà mã bị hỏng là đây (từ quá trình gỡ lỗi của tôi, ở đây ký hiệu bảng Anh sẽ xuất hiện) quan hệ_dict["Giá trị liên quan"] = rel["liên quan"]["giá trị"] Nếu tôi làm một sự cố đơn giản. addNote(str(results["value"])), tôi có đầu ra tiếp theo được in trong Notes (tôi chỉ trích xuất phần liên quan) def myprint(d):1 Cuối cùng, tôi nghĩ rằng tin nhắn cuối cùng của Jared đã chạm vào một điểm ở đây về mã hóa ascii. Tôi cũng nghĩ về điều này, nhưng câu hỏi là tại sao? Nếu tôi in cái này trong IDE của mình print(u"Win a \u00a3100 gift card by telling Sky what you think!")đầu ra là chính xác def myprint(d):2 Vui lòng đề xuất bất kỳ giải pháp nào Thanks ------------------------------ Tin nhắn gốc Này Ben, Tôi tin rằng các tập lệnh xử lý trước/sau về cơ bản đã xác định điều này trên phần phụ trợ ________số 8_______Lỗi này được báo cáo trong chế độ xem trạng thái hành động khi xảy ra. Để thử nghiệm, bạn có thể thử thêm biểu tượng được đề cập vào tên sự cố bằng cách sửa đổi trực tiếp trường. Sau đó, hãy thử chạy tập lệnh hoặc bộ xử lý trước/sau có chứa phương thức truy cập trường. Đơn giản chỉ cần làm một. replace() sẽ tạo ra cái này Chúng tôi đã gặp sự cố này và giải pháp của chúng tôi là loại bỏ các ký tự hoặc xử lý chúng trực tiếp trong các chức năng ------------------------------ Tin nhắn gốc Tôi muốn hiểu trường hợp sử dụng này tốt hơn. Khả năng phục hồi sẽ có thể xử lý unicode. Có thể một số mã python đang giả sử ASCII trong đó có chuỗi unicode có thể dẫn đến lỗi Liên kết này https. //www. ibm. com/support/knowledgecenter/en/SSBRUQ_36. 0. 0/doc/playbook/resilient_playbook_configscripts_considerations. html chỉ đề cập đến các chuỗi được mã hóa cứng trong tập lệnh trong sản phẩm. Nếu bạn đã xây dựng từ điển bằng unicode (có vẻ như bạn có) và việc thực thi mã python xử lý unicode thì nó sẽ hoạt động Bạn đề cập đến lỗi này UnicodeEncodeError('ascii', u'Giành được thẻ quà tặng \xa3100 bằng cách cho Sky biết suy nghĩ của bạn. ', 6, 7, 'thứ tự không nằm trong phạm vi (128)') \XA trong Python là gì?Ký tự \xa0 (không phải \xa như bạn đã nêu) là KHOẢNG CÁCH KHÔNG NGẮT và tất nhiên là tương đương ASCII gần nhất .
ký tự xa0 là gì?Ký tự \xa0 đại diện cho khoảng cách không ngắt , vì vậy cách để xóa ký tự này khỏi chuỗi là thay thế bằng khoảng trắng. dữ liệu unicode. phương thức chuẩn hóa trả về dạng bình thường cho chuỗi Unicode được cung cấp.
Làm cách nào để xóa xa0 trong gấu trúc Python?Để xóa xa0 khỏi chuỗi trong Python, chúng ta có thể sử dụng giá trị NFKD trong hàm normalize() , viết tắt của Normalize . Việc sử dụng NFKD trong hàm normalize() dẫn đến việc thay thế tất cả các ký tự thành các giá trị tương đương của chúng.
Ý nghĩa của \xa0 là gì?\xa0 thực ra là dấu cách không ngắt trong tiếng Latinh1 (ISO 8859-1), cũng như chr(160). Bạn nên thay thế nó bằng một khoảng trắng. chuỗi = chuỗi. thay thế(u'\xa0', u' ') Khi nào. encode('utf-8'), nó sẽ mã hóa unicode thành utf-8, điều đó có nghĩa là mọi unicode có thể được biểu thị bằng 1 đến 4 byte. |