python写入json
Ⅰ python2.7中typeerror: long() argument must be a string or a number,not 'NoneType'该怎么解决
出现这种情况一般都是获取内容时得到的是json格式数据或者说是字典格式数据,然后把json格式数据写入文件时才会报错。解决方法如下:
1、首先在Python中可以调用json模块以处理json格式数据,这样json格式数据便可以转换成字符串了。
Ⅱ python怎么把json文件夹转成Excel表
#导入所需的库:
import os
import json
import pandas as pd
#定义一个函数,该函数将打开并读取给定JSON文件的内容:
def read_json_file(file_path):
with open(file_path, 'r') as f:
data = json.load(f)
return data
#使用os模块遍历JSON文件夹中的所有文件,并将它们读取为Python数据结构:
json_folder = '/path/to/json/folder' # JSON文件夹的路径
data_list = []
for file_name in os.listdir(json_folder):
file_path = os.path.join(json_folder, file_name)
if os.path.isfile(file_path) and file_path.endswith('.json'):
data = read_json_file(file_path)
data_list.append(data)
#将收集到的数据转换为一个Pandas DataFrame对象:
df = pd.DataFrame(data_list)
#使用Pandas的to_excel方法将DataFrame对象保存为Excel文件:
excel_file = '/path/to/result/excel_file.xlsx' # 结果Excel文件的路径和名称
df.to_excel(excel_file, index=False)
#每个JSON文件的内容将成为Excel表中的一行。请将上述代码中的路径和文件名替换为你自己的JSON文件夹路径和要保存的Excel文件路径。
Ⅲ 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模块放这里。
小白的浅见,若错误请指教,谢谢。
Ⅳ python-接口调用传json参数的两种方法
payload={
"Jessie":"Hello",
"python":12334,
"requests":True,
}
url=" http://httpbin.org/post "
r1=requests.post(url,json=payload)
r2 = requests.post(url,json.mps(payload))
print(r1.text)
r2=requests.post(url,data=json.mps(payload))
print(r2.text)
Ⅳ 濡备綍浣跨敤Python澶勭悊JSON鏁版嵁
濡备綍浣跨敤Python澶勭悊JSON鏁版嵁锛熸湰绡囨枃绔犲氨缁椤ぇ瀹朵粙缁崭娇鐢≒ython澶勭悊JSON鏁版嵁镄勫熀链鏂规硶銆傛湁涓瀹氱殑鍙傝冧环鍊硷纴链夐渶瑕佺殑链嫔弸鍙浠ュ弬钥冧竴涓嬶纴甯屾湜瀵逛綘浠链夋墍甯锷┿
鍦ㄤ粙缁崭娇鐢≒ython澶勭悊JSON鏁版嵁镄勫熀链鏂规硶涔嫔墠锛屾垜浠棣栧厛瑕佷简瑙d竴涓嬩粈涔堟槸JSON锛
JSON浠h〃钬淛avaScript Object Notation钬濓纴鍙浠ヨ存槸钬滃熀浜嶫avaScript璇瑷绗﹀彿镄勬暟鎹镙煎纺钬濄备絾鏄锛岃ヨ〃绀烘硶浠呭熀浜嶫avaScript锛屽彲鐢ㄤ簬鍏朵粬钖勭嶈瑷銆
JSON鏄鎴戜滑瀛桦偍鍜屼氦鎹㈡暟鎹镄勪竴绉嶆柟寮忥纴瀹冮氲繃鍏惰娉曞疄鐜帮纴骞跺湪璁稿欧eb搴旂敤绋嫔簭涓浣跨敤銆侸SON镄勪紭镣瑰湪浜庡畠鍏锋湁浜虹被鍙璇荤殑镙煎纺锛岃繖鍙鑳芥槸鍦ㄦ暟鎹浼犺緭涓浣跨敤瀹幂殑铡熷洜涔嬩竴锛屾ゅ栬缮链変娇鐢ˋPI镞剁殑链夋晥镐с
鍦↗SON涓锛屾暟鎹浠ュ悕绉/鍊硷纸name/value锛夊硅〃绀猴绂澶ф嫭鍙峰唴瀛桦偍瀵硅薄锛屾疮涓钖岖О钖庤窡'锛'锛埚啋鍙凤级锛屽悕绉/鍊煎逛箣闂磋佺敤锛堥楀彿锛夊垎闅旓绂鏂规嫭鍙峰寘钖鏁扮粍锛屽间互锛堥楀彿锛夊垎闅斻
JSON镙煎纺鏁版嵁镄勭ず渚嬶细
{
"book1":{
"title": "Python Beginners",
"year": 2005 ,
"page": 399
},
"book2":{
"title": "Python Developers",
"year": 2006 ,
"page": 650
}
}涓嬮溃鎴戜滑𨱒ヨ︾粏浜呜В涓涓嫔湪Python涓濡备綍澶勭悊JSON鏁版嵁銆
Python浣垮缑澶勭悊JSON鏁版嵁鍙桦缑绠鍗曘傚疄鐜版ょ洰镄勭殑妯″潡鏄痡son妯″潡銆傝ユā鍧楀簲璇ュ寘钖鍦≒ython锛埚唴缃锛夊畨瑁呬腑锛屽洜姝や綘涓嶉渶瑕佸儚浣跨敤PDF鍜孍xcel鏂囦欢闾f牱瀹夎呬换浣曞栭儴妯″潡銆傝佷娇鐢ㄦゆā鍧楋纴浣犲敮涓闇瑕佺殑鏄瀵煎叆瀹冿纸寮澶村啓鍏ワ级锛
import json浣嗘槸锛孞SON搴撴槸锅氢粈涔堢殑锻锛熸ゅ簱涓昏佷粠鏂囦欢鎴栧瓧绗︿覆瑙f瀽JSON銆傚畠杩桦皢JSON瑙f瀽涓篜ython涓镄勫瓧鍏告垨鍒楄〃锛屽弽涔嬩害铹讹纴鍗冲皢Python瀛楀吀鎴栧垪琛ㄨ浆鎹涓筼SON瀛楃︿覆銆
璇诲彇JSON锛圝SON杞琍ython锛
璇籎SON镒忓懗镌灏呙SON杞鎹涓篜ython鍊硷纸瀵硅薄锛夈傚备笂镓杩帮纴json搴揿皢JSON瑙f瀽涓篜ython涓镄勫瓧鍏告垨鍒楄〃銆备负姝わ纴鎴戜滑浣跨敤loads()鍑芥暟锛堜粠瀛楃︿覆锷犺浇锛夛纴濡备笅镓绀猴细
import json
jsonData = '{"name": "Frank", "age": 39}'
jsonToPython = json.loads(jsonData)濡傛灉瑕佹煡鐪嬭緭鍑猴纴璇锋墽琛 print jsonToPython锛屽湪杩欑嶆儏鍐典笅锛屼綘灏呜幏寰椾互涓嬭緭鍑猴细
{'age': 39, 'name': 'Frank'}涔熷氨鏄璇达纴鏁版嵁浣滀负Python瀛楀吀锛圝SON瀵硅薄鏁版嵁缁撴瀯锛夎繑锲炪
Python杞琂SON
涓娄竴鑺傛垜浠浠嬬粛浜呙SON杞琍ython锛岃繖涓鑺傛垜浠灏嗗悜浣犲𪾢绀哄备綍灏哖ython鍊艰浆鎹锛堢紪镰侊级涓筼SON銆
锅囱炬垜浠鍦≒ython涓链変互涓嫔瓧鍏革细
import json
pythonDictionary = {'name':'Bob', 'age':44, 'isEmployed':True}
dictionaryToJson = json.mps(pythonDictionary)濡傛灉鎴戜滑杩愯 print dictionaryToJson锛屾垜浠寰楀埌浠ヤ笅JSON鏁版嵁锛
{"age": 44, "isEmployed": true, "name": "Bob"}锲犳わ纴姝よ緭鍑鸿瑙嗕负瀵硅薄锛图ictionary锛夌殑鏁版嵁琛ㄧず銆傝ユ柟娉昫umps()鏄姝ょ被镎崭綔镄勫叧阌銆
姝ゆ椂闇瑕佹敞镒忕殑鏄锛孞SON涓嶈兘瀛桦偍镓链夌被鍨嬬殑Python瀵硅薄锛屽彧鑳藉瓨鍌ㄤ互涓嬬被鍨嬶细鍒楄〃; 瀛楀吀; 甯冨皵鍊; 鏁; 瀛楃︿覆; 娌℃湁銆傚洜姝わ纴闇瑕佽浆鎹浠讳綍鍏朵粬绫诲瀷浠ヤ究瀛桦偍鍦↗SON涓銆
锅囱炬垜浠链変互涓嬭剧▼锛
class Employee(object):
def __init__(self, name):
self.name = name锅囱炬垜浠鍒涘缓浜嗕竴涓鏂板硅薄abder锛屽备笅镓绀猴细
abder = Employee('Abder')濡傛灉鎴戜滑𨱍冲皢姝ゅ硅薄杞鎹涓筼SON锛岃ユ庝箞锷烇纻闾f槸json.mps(abder)锛熷湪杩欑嶆儏鍐典笅锛屼綘灏嗘敹鍒扮被浼间簬浠ヤ笅鍐呭圭殑阌栾锛
Traceback (most recent call last):
File "test.py", line 8, in <mole>
abderJson = json.mps(abder)
File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 243, in mps
return _default_encoder.encode(obj)
File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <__main__.Employee object at 0x10e74b750> is not JSON serializable浣嗘槸锛屾湁瑙e喅鏂规硶钖楋纻骞歌繍镄勬槸链夈傝佽В鍐虫ら梾棰桡纴鎴戜滑鍙浠ュ畾涔夌被浼间簬浠ヤ笅镄勬柟娉曪细
def jsonDefault(object):
return object.__dict__铹跺悗灏嗗硅薄缂栫爜涓筼SON锛屽备笅镓绀猴细
jsonAbder = json.mps(abder, default=jsonDefault)濡傛灉浣犺繍琛 print jsonAbder锛屼綘搴旇ュ缑鍒颁互涓嬭緭鍑猴细
{"name": "Abder"}鎴戜滑鐜板湪宸茬粡灏哖ython瀵硅薄锛坅bder锛夌紪镰佷负JSON銆
Ⅵ python中如何遍历json数组
1、创建python文件,testjson.py;