Search code examples
pythonformspython-requests

Python Requests - Post indexed array


I'd like to send request using python and requests library. I have checked this request in web browser inspector and form data looks like that:

data[foo]: bar
data[numbers][]: 1
data[numbers][]: 2
data[numbers][]: 3
data[numbers][]: 4
data[numbers][]: 5
csrf_hash: 12345

This is my code:

payload = {'data[foo]': 'bar', 'csrf_hash': 12345,
         'data[numbers]': [1, 2, 3, 4, 5]}
r = s.post('https://www.foo.com/bar/', payload)

It doesn't work. I'm getting error because of invalid post data


Solution

  • I have made a modification to make it more dynamic:

    Here is the code:

        payload = ['data[foo]': 'bar', 'csrf_hash': 12345]
        numbers = [1,2,3,4,5]
        idx = 0
        for item in numbers:
            payload = payload  + [('data[numbers]' + '[' + str(idx) + ']', 
            str(numbers ))]
            idx = idx + 1
        r = s.post(*your_url_here*, payload)