Hướng dẫn how do you strip json in python? - làm thế nào để bạn lột json trong python?

Đây có thể không phải là quá trình hiệu quả nhất, nhưng nó hoạt động. Tôi đã sao chép mẫu đó vào một tệp có tên json.txt, sau đó đọc nó, giải phóng nó bằng json.loads() và sử dụng một cặp chức năng để làm sạch đệ quy và mọi thứ bên trong nó.

import json

def clean_dict(d):
    for key, value in d.iteritems():
        if isinstance(value, list):
            clean_list(value)
        elif isinstance(value, dict):
            clean_dict(value)
        else:
            newvalue = value.strip()
            d[key] = newvalue

def clean_list(l):
    for index, item in enumerate(l):
        if isinstance(item, dict):
            clean_dict(item)
        elif isinstance(item, list):
            clean_list(item)
        else:
            l[index] = item.strip()

# Read the file and send it to the dict cleaner
with open("json.txt") as f:
    data = json.load(f)

print "before..."
print data, "\n"

clean_dict(data)

print "after..."
print data

Kết quả...

before...
{u'anotherName': [{u'anArray': [{u'anotherKey': u'  value', u'key': u'    value\n\n'}, {u'anotherKey': u'value', u'key': u'    value\n'}]}], u'name': [{u'someKey': u'\n\n   some Value   '}, {u'someKey': u'another value    '}]} 

after...
{u'anotherName': [{u'anArray': [{u'anotherKey': u'value', u'key': u'value'}, {u'anotherKey': u'value', u'key': u'value'}]}], u'name': [{u'someKey': u'some Value'}, {u'someKey': u'another value'}]}

Hướng dẫn how do you strip json in python? - làm thế nào để bạn lột json trong python?

JSON không cho phép bình luận theo thiết kế. Như được giải thích bởi người tạo ra Douglas Crockford.

Tôi đã loại bỏ các bình luận khỏi JSON vì tôi thấy mọi người đang sử dụng chúng để giữ các chỉ thị phân tích cú pháp, một thực tế sẽ phá hủy khả năng tương tác.

Nhưng ông cũng tuyên bố rằng bạn có thể sử dụng các công cụ bên ngoài hoặc tích hợp để các tệp JSON phân chia trước và xóa bất kỳ nhận xét nào trước khi phân tích cú pháp thực tế diễn ra.

Trong bài viết ngắn này, chúng tôi sẽ xem cách bạn có thể xóa nhận xét khỏi các tệp JSON bằng mã Python.

Cách đọc các tệp JSON với Python

Đầu tiên, chúng ta cần có khả năng đọc các tệp JSON trong mã Python của mình:

import json

with open('example.json') as json_file:
    data = json.load(json_file)
        print(data)

Cách xóa nhận xét khỏi tệp JSON của bạn

Có nhiều cách giải quyết khác nhau được sử dụng bởi các nhà phát triển để thêm nhận xét vào các tệp JSON nói chung.

Bạn có thể sử dụng các nhận xét kiểu JS (dòng // và Multiline /* .. */) trong các tệp JSON của bạn và phân chia trước chúng bằng mã Python của bạn để xóa các nhận xét trước khi đọc chúng theo cách trước:

import json

with open('data.json', 'r') as jsonfile:
    jsondata = ''.join(line for line in jsonfile if not line.startswith('//'))
    data = json.loads(jsondata)

print(data)

Bạn cũng có thể sử dụng các gói bên ngoài như:

  • JSON-Minify: Một cổng của tiện ích JSON-Minify đến ngôn ngữ Python để thu nhỏ các khối nội dung giống JSON thành JSON hợp lệ bằng cách loại bỏ tất cả các nhận xét theo kiểu Whitespace và JS (dòng đơn // và đa dòng /* .. */). Với JSON-Minify, bạn có thể duy trì các tài liệu JSON thân thiện với nhà phát triển, nhưng thu nhỏ chúng trước khi phân tích hoặc truyền chúng qua dây. Có thể được cài đặt bằng lệnh
    before...
    {u'anotherName': [{u'anArray': [{u'anotherKey': u'  value', u'key': u'    value\n\n'}, {u'anotherKey': u'value', u'key': u'    value\n'}]}], u'name': [{u'someKey': u'\n\n   some Value   '}, {u'someKey': u'another value    '}]} 
    
    after...
    {u'anotherName': [{u'anArray': [{u'anotherKey': u'value', u'key': u'value'}, {u'anotherKey': u'value', u'key': u'value'}]}], u'name': [{u'someKey': u'some Value'}, {u'someKey': u'another value'}]}
    
    0,
  • Nhận xétJSON: Gói Python giúp bạn tạo các tệp JSON với các bình luận nội tuyến kiểu Python và JavaScript. API của nó rất giống với mô -đun JSON của Thư viện tiêu chuẩn Python. Bạn có thể cài đặt nó bằng lệnh
    before...
    {u'anotherName': [{u'anArray': [{u'anotherKey': u'  value', u'key': u'    value\n\n'}, {u'anotherKey': u'value', u'key': u'    value\n'}]}], u'name': [{u'someKey': u'\n\n   some Value   '}, {u'someKey': u'another value    '}]} 
    
    after...
    {u'anotherName': [{u'anArray': [{u'anotherKey': u'value', u'key': u'value'}, {u'anotherKey': u'value', u'key': u'value'}]}], u'name': [{u'someKey': u'some Value'}, {u'someKey': u'another value'}]}
    
    1.

Đây là một ví dụ sử dụng:

import commentjson

with open('data.json', 'r') as file:
    ata = commentjson.load(file)

print(data)

Đây là một ví dụ khác từ các tài liệu:

>>> import commentjson
>>>
>>> json_string = """{
...     "name": "Vaidik Kapoor", # Person's name
...     "location": "Delhi, India", // Person's location
...
...     # Section contains info about
...     // person's appearance
...     "appearance": {
...         "hair_color": "black",
...         "eyes_color": "black",
...         "height": "6"
...     }
... }"""
>>>
>>> json_loaded = commentjson.loads(json_string)
>>> print json_loaded
{u'appearance': {u'eyes_color': u'black', u'hair_color': u'black', u'height': u'6'}, u'name': u'Vaidik Kapoor', u'location': u'Delhi, India'}

  • Tác giả: Ahmed Bouchefra theo dõi @ahmedbouchefra
  • Ngày: 05 tháng 9 năm 2020


Nếu bạn có bất kỳ câu hỏi nào về bài viết này, hãy hỏi họ trong các cuộc thảo luận của chúng tôi 👈 cộng đồng. Bạn cũng có thể

Hướng dẫn how do you strip json in python? - làm thế nào để bạn lột json trong python?

Giống như trang của chúng tôi và đăng ký nguồn cấp dữ liệu của chúng tôi để cập nhật!

Làm cách nào để loại bỏ các ký tự đặc biệt khỏi JSON?

Backspace được thay thế bằng \ b ..
Nguồn cấp dữ liệu hình thức được thay thế bằng \ f ..
Đường mới được thay thế bằng \ n ..
Vận chuyển trở lại để được thay thế bằng \ r ..
Tab được thay thế bằng \ t ..
Báo giá kép được thay thế bằng \ ".
Backslash để được thay thế bằng \\.

Làm thế nào để bạn phân tích một json trong Python?

Nếu bạn có chuỗi JSON, bạn có thể phân tích nó bằng cách sử dụng phương thức JSON.LOADS ().Kết quả sẽ là một từ điển Python.using the json. loads() method. The result will be a Python dictionary.

Làm cách nào để loại bỏ thứ gì đó từ JSON?

Để xóa phần tử JSON, hãy sử dụng từ khóa xóa trong JavaScript.use the delete keyword in JavaScript.

Làm thế nào để bạn loại bỏ khoảng trống khỏi tệp JSON trong Python?

Đối số từ khóa thụt lề in đẹp chuỗi JSON với mức thụt đầu tiên được chỉ định.Đối số được đặt thành không có theo mặc định.Để loại bỏ tất cả khoảng trắng khỏi chuỗi JSON, hoặc đặt đối số thụt vào không hoặc bỏ qua nó khi gọi json.dumps ().set the indent argument to None or omit it when calling json. dumps() .