當前位置:首頁 » 編程語言 » python發送json

python發送json

發布時間: 2022-09-13 01:28:36

1. python json 內有多個json

Json簡介:Json,全名 JavaScript Object Notation,是一種輕量級的數據交換格式。Json最廣泛的應用是作為AJAX中web伺服器和客戶端的通訊的數據格式。現在也常用於http請求中,所以對json的各種學習,是自然而然的事情。Python的官網網址:

Json API 使用:python在版本2.6之前,是需要先下載包,安裝後才能使用的,有點類似現在的RF內使用SeleniumLibrary一樣。但是在2.6中,官方文檔明顯指出,「有一些重要的新的軟體包添加到了標准庫,比如multiprocessing 和json,但是跟python 3比,2.6的這些包不會引進更多的新功能。"於是安裝python2.6以上版本的童鞋,可以不需要下載json包,直接在所需的地方就import json 即可使用,在安裝目錄下的Lib 下,看到這兩個包(點進去仔細閱讀這些源碼,會有更多的收獲,)如下文所示:

2. 怎麼用python發json數據

#讀 file = 'test.json' fp = open(file, 'r') dict = json.mp(fp.read()) fp.close() #寫 testDict = {'a':1,'b':2} file = 'my.json' fp = open(file,'w+') fp.write(json.loads(testDict)) fp.close()

3. python如何模擬前端通過JSON.stringify給後端發送數據

一般介面測試直接用Postman比較方便~

4. python怎麼轉化成json格式

如果datas是Python的原始數據,並且datas中沒有非ascii碼,可以使用如下語句轉換為json格式:
import
json
json.mps(datas)
當datas中含有中文等非ascii字元時,可以使用如下參數:
json.mps(datas,
ensure_ascii=False)
如果想美化輸出格式,可以使用indent參數:
json.mps(datas,
indent=4)

5. Python3中,建立一個socket客戶端向服務端發送json數據是報 unknown url type,為什麼呢

參考這個客戶端程序,我覺得是你的服務端有問題
import socket

HOST = '127.0.0.1' # 伺服器的主機名或者 IP 地址
PORT = 65432 # 伺服器使用的埠

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)

print('Received', repr(data))

服務端寫法
import socket

HOST = '127.0.0.1' # 標準的回環地址 (localhost)
PORT = 65432 # 監聽的埠 (非系統級的埠: 大於 1023)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)

6. python中為什麼用json有什麼作用

今天我也在這個問題上糾結很久。最後才想明白,我來回答下。

網上很多網友總結了json模塊的用法,但沒說json模塊有什麼用,幹嘛要有這個模塊。可能都明白、太簡單,覺得沒必要說。但作為小白的我不明白,而且在練習使用load()和mp()時遇到錯誤。

首先糾正,json格式不是字元串。json與python裡面的字典是一樣的格式。

python的json模塊四個方法的作用為:

mps()#把數據轉成字元串;
loads()#把字元串符號『』去掉;
mp(x,f)#將x的內容直接寫入f,不改變格式;
load(x,f)#讀取f保存為x,同樣不改變格式。

重點來了,f = open()下的read()的方法,輸出是字元串,wirte()方法的輸入也必須是字元串。

結論:因為f=open()下的讀寫方法都必須是字元串,很不方便。而非字元串的數據大多是json格式,所以就有了json模塊。方便讀寫非字元串的數據。

因為這個目的,json模塊的loads()和mps()方法有些雞肋,還造成困擾,因為明明json不是字元串,幹嘛要轉成字元串,另外mp()和load()方法表面上和它們不一樣。只有明白json模塊的目的,才會搞明白。

在python 3.6的說明文檔中,把json模塊放在了《7.2.文件讀寫》部分。我也是看到這里才去練習json模塊。但出問題,有些糊塗,明白json模塊的作用後,才更清楚幹嘛把json模塊放這里。

小白的淺見,若錯誤請指教,謝謝。

7. 如何用python獲得跨域請求的json數據

首先找到獲取所需信息的請求,之後查看請求地址和請求參數,使用同樣的請求發送數據,如果能得到就OK,得不到的話,可以看一下瀏覽器的請求代碼,火狐和Chrome都可以查看,然後把這些請求頭加到代碼中,就可以查到了
如果得到的是亂碼,有可能被壓縮了,解壓一下就好,一般為gzip類型壓縮,請求頭Accept-Encoding:gzip是這樣的。

8. python中使用socket編程,如何能夠通過UDP傳遞一個列表類型的數據

Python中的 list 或者 dict 都可以轉成JSON字元串來發送,接收後再轉回來。


首先

importjson

然後,把 list 或 dict 轉成 JSON

json_string=json.mps(list_or_dict)

如果你用的是Python3,這里的 json_string 會是 str 類型(即Python2的unicode類型),可能需要編碼一下:

if type(json_string) == six.text_type:

json_string = json_string.encode('UTF-8')

用socket發送過去,例如

s.sendto(json_string,address)


對方用socket接收,例如

json_string,addr=s.recvfrom(2048)

把JSON轉成 list 或 dict

list_or_dict=json.loads(json_string)




下面是個完整的例子:


client.py

#!/usr/bin/envpython
#-*-coding:UTF-8-*-

importsocket
importjson
importsix

address=('127.0.0.1',31500)
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
mylist=[1,2,3,4,5,6,7,8,9,10]
json_string=json.mps(mylist)
iftype(json_string)==six.text_type:
json_string=json_string.encode('UTF-8')
s.sendto(json_string,address)
s.close()


server.py

#!/usr/bin/envpython
#-*-coding:UTF-8-*-

importsocket
importjson

address=('127.0.0.1',31500)
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(address)
json_string,addr=s.recvfrom(2048)
mylist=json.loads(json_string)
print(mylist)
s.close()


請先運行server.py,再運行client.py

9. python發送數據包獲取返回數據(其他的語言能實現也可以)

使用網路翻譯的一個例子,可以翻譯你輸入的文字,發送需要的內容,獲取返回的數據

import urllib.request
import urllib.parse
import json
import time

while True:
url = 'http://fanyi..com/v2transapi'

words = input("輸入你想翻譯的內容:")

data = {}
data['from'] = 'auto'
data['to'] = 'auto'
data['query'] = words
data['transtype'] = 'translang'
data['simple_means_flag'] = '3'

data = urllib.parse.urlencode(data).encode('utf-8')

headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36'
}

req = urllib.request.Request(url, data, headers)
req.add_header('Referer', 'http://fanyi..com/')
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
js = json.loads(html)
# print(html)
# print(js)
print(js['trans_result']['data'][0]['dst'])
time.sleep(1)

10. 如何使用 python3+urllib 發送一個 application/json 的請求

head = {
'Accept': '*/*',
'Host': '',
'Connection': 'keep-alive',
'Content-Length': '245',
'Origin': '',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome'
'/51.0.2704.103 Safari/537.36',
'Content-Type': 'application/json',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Referer': '',
'Accept-Language': 'zh-CN,zh;q=0.8',
'Accept-Encoding': 'gzip, deflate'
}

cookie = cookiejar.CookieJar()
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)
opener.addheader(head)
# 其他為了獲取 cookie 的各種請求。
.....
.....
.....
parsed_request_data = json.mps(self.hotel_search_request_data).encode()
response = openner.open(self.hotel_search_url, parsed_request_data)

熱點內容
手機怎樣給程序加密軟體 發布:2025-01-12 06:47:11 瀏覽:824
地平線最高畫質筆記本要什麼配置才能玩 發布:2025-01-12 06:47:10 瀏覽:369
原神過主線任務腳本 發布:2025-01-12 06:34:51 瀏覽:514
醫保電子密碼在哪裡找到 發布:2025-01-12 06:34:38 瀏覽:349
安卓手機有網卻不能使用怎麼辦 發布:2025-01-12 06:25:20 瀏覽:213
arm存儲器映射 發布:2025-01-12 06:25:12 瀏覽:250
安卓系統個人字典有什麼用 發布:2025-01-12 06:13:37 瀏覽:929
geventpython安裝 發布:2025-01-12 06:13:34 瀏覽:339
放鬆解壓助睡眠直播 發布:2025-01-12 06:13:00 瀏覽:829
車載wince和安卓哪個好用 發布:2025-01-12 05:58:18 瀏覽:840