2010-09-11 40 views
5

Làm cách nào để chuyển đổi biến JavaScript (không phải định dạng JSON) thành biến python?Biến JavaScript Parse với Python

Ví dụ JavaScript biến:

{ 
    title: "TITLE", 
    name: "NAME", 
    active: false, 
    info: { 
     key1: "value1", 
     dict1: { 
      sub_key1: "sub_value1", 
      sub_key2: "sub_value2", 
     }, 
     dict2: { 
      sub_key3: "sub_value3", 
      sub_key4: "sub_value4", 
      sub_key5: "sub_value5" 
     }, 
    }, 
    list1: ["element1", "element2", "element2"], 
} 
+0

Bạn có thể muốn nói rằng "biến Javascript" đó có được lưu trong chuỗi Python hay không. –

Trả lời

4

Định dạng này trông giống như các đầu vào trong this question. Hãy thử điều chỉnh bộ phân tích cú pháp pyparsing mà tôi đã đăng ở đó.

1

Chuyển đổi thành JSON và đọc nó trong python.

Tôi thực sự không hiểu vấn đề là gì?

ví dụ: JSON.stringify cho

{"title":"TITLE","name":"NAME","active":false,"info":{"key1":"value1","dict1":{"sub_key1":"sub_value1","sub_key2":"sub_value2"},"dict2":{"sub_key3":"sub_value3","sub_key4":"sub_value4","sub_key5":"sub_value5"}},"list1":["element1","element2","element2"]} 

Mà có thể được đọc bởi module json python, vì vậy câu hỏi là nơi từ bạn đang nhận được javascript và tại sao bạn không thể chuyển nó sang JSON?

Chỉnh sửa: nếu nguồn javascript nếu hoàn toàn ngoài tầm kiểm soát của bạn, bạn có thể sử dụng javascript làm ngôn ngữ kịch bản lệnh dòng lệnh, ví dụ: spidermonkey (được sử dụng trong firefox), rhino, V8 (được sử dụng trong google chrome) hoặc trên cửa sổ WSH. Sử dụng trình thông dịch javascript bạn có thể sửa đổi javascript, xâu chuỗi nó và sau đó xử lý nó bằng python nếu cần.

Tốt hơn nên người dùng đã thực hiện và kiểm tra thông dịch viên hơn là tự xây dựng thông dịch viên.

Bạn cũng có thể thử python-spidermonkey

+0

làm thế nào tôi có thể xâu chuỗi biến Javascript thành chuỗi JSON bằng Python? Tôi không thể kiểm soát định dạng của biến nguồn. Nó xuất hiện chính xác như được liệt kê ở trên trong tệp .html. – jack

+0

@jack, xem bản chỉnh sửa. –