Hướng dẫn how do you iterate through a json string in python? - làm thế nào để bạn lặp qua một chuỗi json trong python?

Tôi đang cố gắng lặp lại thông qua một đối tượng JSON để nhập dữ liệu, tức là tiêu đề và liên kết. Tôi dường như không thể đi đến nội dung đã qua

{ 
    string: value, string: value,..............
}
3.

JSON:

[
    {
        "title": "Baby (Feat. Ludacris) - Justin Bieber",
        "description": "Baby (Feat. Ludacris) by Justin Bieber on Grooveshark",
        "link": "http://listen.grooveshark.com/s/Baby+Feat+Ludacris+/2Bqvdq",
        "pubDate": "Wed, 28 Apr 2010 02:37:53 -0400",
        "pubTime": 1272436673,
        "TinyLink": "http://tinysong.com/d3wI",
        "SongID": "24447862",
        "SongName": "Baby (Feat. Ludacris)",
        "ArtistID": "1118876",
        "ArtistName": "Justin Bieber",
        "AlbumID": "4104002",
        "AlbumName": "My World (Part II);\nhttp://tinysong.com/gQsw",
        "LongLink": "11578982",
        "GroovesharkLink": "11578982",
        "Link": "http://tinysong.com/d3wI"
    },
    {
        "title": "Feel Good Inc - Gorillaz",
        "description": "Feel Good Inc by Gorillaz on Grooveshark",
        "link": "http://listen.grooveshark.com/s/Feel+Good+Inc/1UksmI",
        "pubDate": "Wed, 28 Apr 2010 02:25:30 -0400",
        "pubTime": 1272435930
    }
]

Tôi đã thử sử dụng từ điển:

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song

Mã này chỉ in thông tin trước

{ 
    string: value, string: value,..............
}
3. (Bỏ qua ca khúc Justin Bieber :))

Trong đó, File_Name là tên của tệp JSON trong đó, dữ liệu JSON được lưu trữ.

Chương trình nghị sự

  • Giới thiệu
  • Lặp lại đối tượng JSON bằng phương thức tải () với vòng lặp
  • Lặp lại tệp json bằng tải () và cho vòng lặp
  • Bản tóm tắt

Giới thiệu

JSON là viết tắt của ký hiệu đối tượng JavaScript. Sử dụng JSON, chúng ta có thể lưu trữ dữ liệu ở định dạng cặp giá trị khóa. Ưu điểm chính của JSON là chúng ta có thể dễ dàng hiểu dữ liệu.

Cấu trúc JSON:

{ 
    string: value, string: value,..............
}

Hãy cùng xem các cách để lặp lại một đối tượng JSON.

Quảng cáo

Lặp lại đối tượng JSON bằng phương thức tải () với vòng lặp

Trong kịch bản này,

  • Chúng tôi sẽ tạo một chuỗi JSON và tải nó vào một từ điển bằng phương thức Loads ().

Syntax:

loaded = json.loads(input_json_string)

trong đó input_json_string là chuỗi hoặc đối tượng JSONinput_json_string is the JSON string or object

  • Lặp lại từ điển đó (được tải) bằng cách sử dụng vòng lặp với trình lặp.

Syntax:

for iterator in loaded:
    print(iterator, ":", loaded[iterator])

trong đó người lặp được sử dụng để lặp lại các phím trong từ điển. Hãy cùng xem ví dụ, để hiểu nó tốt hơn.iterator is used to iterate the keys in a dictionary. Let’s see the example, to understand it better.

Trong ví dụ này, chúng tôi đã tạo một chuỗi JSON với 5 phần tử và lặp lại sử dụng cho Loop.

# import JSON module
import json

# Consider the json string with 5 values
input_json_string = '{  "tutorial-1": "python", \
                        "tutorial-2": "c++",    \
                        "tutorial-3": "pandas", \
                        "tutorial-4": "numpy",  \
                        "tutorial-5": ".net"}'

# Load input_json_string into a dictionary-loaded
loaded = json.loads(input_json_string)

# Loop along dictionary keys
for iterator in loaded:
    print(iterator, ":", loaded[iterator])

Output:

tutorial-1 : python
tutorial-2 : c++
tutorial-3 : pandas
tutorial-4 : numpy
tutorial-5 : .net

Từ đầu ra, chúng ta có thể thấy rằng tất cả các giá trị có trong JSON được lặp lại.

Ví dụ 2:

Nếu có nhiều giá trị được gắn vào một phần tử chuỗi, phương thức tải () hoạt động tốt. Hãy cùng xem cách lặp lại tất cả các giá trị trong một danh sách.

import json

# Consider the json string with 5 key value pairs, where each value is a list
input_json_string = '{  "tutorial-1": ["subject1","subject2","subject3"],  \
                        "tutorial-2":  ["subject1","subject2","subject3"], \
                        "tutorial-3":  ["subject1","subject2","subject3"], \
                        "tutorial-4":  ["subject1","subject2","subject3"], \
                        "tutorial-5":  ["subject1","subject2","subject3"] }'

# Load input_json_string into a dictionary-loaded
loaded = json.loads(input_json_string)

# Loop along dictionary keys
for iterator in loaded:
    print(iterator, ":", loaded[iterator])

Output:

tutorial-1 : ['subject1', 'subject2', 'subject3']
tutorial-2 : ['subject1', 'subject2', 'subject3']
tutorial-3 : ['subject1', 'subject2', 'subject3']
tutorial-4 : ['subject1', 'subject2', 'subject3']
tutorial-5 : ['subject1', 'subject2', 'subject3']

Trong mã trên, chúng tôi đã gán 5 giá trị cho tất cả các phần tử chuỗi và lặp lại bằng cách sử dụng vòng lặp.

Ví dụ 3:

Ở đây, chúng tôi xem xét chuỗi JSON với 2 phần tử chuỗi và với 3 cặp giá trị khóa. Tải chúng trong một từ điển và lặp sử dụng cho vòng lặp.

import json

# consider the json string with 2 string elements
# with 3 key-value pairs through a dictionary
input_json_string = '{"tutorial-1": {"subject1":"python",   \
                                     "subject2":"php",      \
                                     "subject3":"node.js"}, \
                      "tutorial-2": {"subject1":"java",     \
                                     "subject2":"android",  \
                                      "subject3":"css" } }'

# Load input_json_string into a dictionary-loaded
loaded = json.loads(input_json_string)

#Loop along dictionary keys
for iterator in loaded:
    print(iterator, ":", loaded[iterator])

Output:

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song
0

Lặp lại tệp json bằng tải () và cho vòng lặp

Tại đây, chuỗi JSON có sẵn trong một tệp và chúng tôi phải mở tệp đó và truy cập chuỗi JSON từ nó.

Bước 1: Mở tệp. Open the file.

Bằng cách sử dụng phương thức Open (), chúng ta có thể mở tệp dọc theo từ khóa của Google

Syntax:

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song
1

Trong đó, File_Name là tên của tệp JSON trong đó, dữ liệu JSON được lưu trữ.

Bước 2: Tải chuỗi JSON vào một biến Load the json string into a variable

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song
2

Bước 3: Lặp lại từ điển đó bằng cách sử dụng vòng lặp với trình lặp. Iterate that dictionary using for loop with an iterator.

Cú pháp:

for iterator in loaded:
    print(iterator, ":", loaded[iterator])

Ví dụ 1:

Trong ví dụ này, chúng tôi đã đặt một chuỗi JSON với 5 phần tử trong một tệp có tên - Tutorial1.json và sau đó tải vào một từ điển và lặp sử dụng cho Loop.

Chuỗi JSON trong tệp: Tutorial1.json

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song
4

Mã để tải chuỗi JSON từ tệp và sau đó lặp lại như sau,

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song
5

Output:

tutorial-1 : python
tutorial-2 : c++
tutorial-3 : pandas
tutorial-4 : numpy
tutorial-5 : .net

Từ đầu ra, chúng ta có thể thấy rằng tất cả các giá trị có trong tệp JSON được lặp lại.

Ví dụ 2:

Nếu có nhiều giá trị được gắn vào một phần tử chuỗi, phương thức tải () hoạt động tốt. Hãy cùng xem cách lặp lại tất cả các giá trị trong một danh sách.

Trong mã trên, chúng tôi đã gán 5 giá trị cho tất cả các phần tử chuỗi và lặp lại bằng cách sử dụng vòng lặp.

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song
7

Mã để tải chuỗi JSON từ tệp và sau đó lặp lại như sau,

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song
8

Output:

tutorial-1 : ['subject1', 'subject2', 'subject3']
tutorial-2 : ['subject1', 'subject2', 'subject3']
tutorial-3 : ['subject1', 'subject2', 'subject3']
tutorial-4 : ['subject1', 'subject2', 'subject3']
tutorial-5 : ['subject1', 'subject2', 'subject3']

Từ đầu ra, chúng ta có thể thấy rằng tất cả các giá trị có trong tệp JSON được lặp lại.

Trong ví dụ này, chúng tôi đã đặt một chuỗi JSON trong một tệp có tên - Hướng dẫn.json. Chuỗi JSON có 5 phần tử, có 5 giá trị mỗi phần. Sau đó, chúng tôi đã tải chuỗi JSON vào một từ điển và lặp lại bằng cách sử dụng vòng lặp. In this example, we will consider the json string with 2 string elements and with 3 key-value pairs in each of them. We will load it in a dictionary and iterate using for loop.

Trong mã trên, chúng tôi đã gán 5 giá trị cho tất cả các phần tử chuỗi và lặp lại bằng cách sử dụng vòng lặp.

{ 
    string: value, string: value,..............
}
0

Mã để tải chuỗi JSON từ tệp và sau đó lặp lại như sau,

{ 
    string: value, string: value,..............
}
1

Output:

def getLastSong(user,limit):
    base_url = 'http://gsuser.com/lastSong/'
    user_url = base_url + str(user) + '/' + str(limit) + "/"
    raw = urllib.urlopen(user_url)
    json_raw= raw.readlines()
    json_object = json.loads(json_raw[0])

    #filtering and making it look good.
    gsongs = []
    print json_object
    for song in json_object[0]:   
        print song
0

Từ đầu ra, chúng ta có thể thấy rằng tất cả các giá trị có trong tệp JSON được lặp lại.

Bản tóm tắt

Trong ví dụ này, chúng tôi đã đặt một chuỗi JSON trong một tệp có tên - Hướng dẫn.json. Chuỗi JSON có 5 phần tử, có 5 giá trị mỗi phần. Sau đó, chúng tôi đã tải chuỗi JSON vào một từ điển và lặp lại bằng cách sử dụng vòng lặp.

Làm thế nào để bạn phân tích một chuỗi 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.

Bạn có thể lặp lại thông qua JSON không?

"Làm thế nào để tôi lặp lại một cấu trúc JSON?"Bạn không.Bạn phân tích nó, trong đó bạn không còn JSON nữa, và bạn lặp qua mảng kết quả.You don't. You parse it, whereupon you don't have JSON anymore, and you loop through the resulting array.

Làm thế nào để bạn phân tích dữ liệu JSON trong Python?

Ngoài JSON, hàm Open () gốc của Python cũng sẽ được yêu cầu.Thay vì phương thức tải JSON, đọc các chuỗi JSON, phương thức được sử dụng để đọc dữ liệu JSON trong tệp là load ().Phương thức Load () chiếm một đối tượng tệp và trả về dữ liệu JSON được phân tích cú pháp vào một đối tượng Python.load(). The load() method takes up a file object and returns the JSON data parsed into a Python object.

Làm thế nào để bạn truy cập một mảng JSON trong Python?

Bạn cần chuyển đổi chuỗi của một đối tượng JSON thành Python dict trước khi bạn có thể truy cập nó.Lưu câu trả lời này.Hiển thị hoạt động trên bài viết này.Thông thường JSON sẽ là một chuỗi và bạn sẽ thử và bỏ nó vào biểu đồ đối tượng (trong Python thường được tạo thành từ bản đồ và mảng).convert the string of a json object to python dict before you can access it. Save this answer. Show activity on this post. Usually the json will be a string and you will try and deserialise it into a object graph (which in python are typically are made up of maps and arrays).